Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Get any form element attribute by any part of it.

Status
Not open for further replies.

solepixel

Programmer
May 30, 2007
111
US
This may sound confusing however throughout various parts of my script i'm writing, I need to reference different parts of a form element. Parts like name, id, type and tagName. I tried writing a function that will extract whichever one i'm looking for with only what i have to give it. Say for example, I want the element's name and I have the id, or I want the ID and all I have is it's object reference (HTMLInputElement). I would like to feed this function any number of valid sources and let it give me back what I'm looking for. Here's the function I wrote, which doesn't work, but will maybe help you understand what I'm trying to do:
Code:
function thisForThat(trade,what,formName){
	here = trade;
	
	//get name
	var name = "";
	if(document.forms[formName].elements[trade]){
		name = trade;
	} else {
		if($(trade).name){
			name = $(trade).name;
		}
		if(trade.name != "" && !name){
			name = trade.name;
		}
		if(document.forms[formName].elements[trade.name] && !name){
			name = trade.name;
		}
	}
	
	//get id
	var id = "";
	if($(trade)){
		id = trade;
	} else {
		if(document.forms[formName].elements[trade]){
			if(document.forms[formName].elements[trade].name != ""){
				id = document.forms[formName].elements[trade].name;
			}
		}
		if(trade.id && !id){
			id = trade.id
		}
	}
	if(!id){
		id = name;
	}
	
	// get nameRef
	var nameRef = "";
	if(typeof trade != "undefined"){
		if(trade.name){
			nameRef = document.forms[formName].elementes[trade.name];
		}
	}
	if($(trade) && !nameRef){
		if($(trade).name != ""){
			nameRef = document.forms[formName].elements[$(trade).name];
		}
	}
	if(document.forms[formName].elements[trade] && !nameRef){
		nameRef = document.forms[formName].elements[trade];
	}
	
	//get idRef
	var idRef = "";
	if(trade.id != ""){
		idRef = $(trade.id);
	}
	if(document.forms[formName].elements[trade] && !idRef){
		if(document.forms[formName].elements[trade].id != ""){
			idRef = $(document.forms[formName].elements[trade].id);
		}
	}
	if($(trade) && !idRef){
		idRef = $(trade);
	}
	if(!idRef){
		idRef = nameRef;
	}
	
	// get tagName
	if(nameRef){
		tagName = nameRef.tagName;
	} else {
		tagName = idRef.tagName;
	}
	
	//get type
	if(nameRef){
		if(nameRef.type != ""){
			type = nameRef.type;
		}
	} else {
		if(idRef.type != ""){
			type = idRef.type;
		}
	}
	
	if(what == "id"){
		return id;
	}
	if(what == "name"){
		return name;
	}
	if(what == "idRef"){
		return idRef;
	}
	if(what == "nameRef"){
		return nameRef;
	}
	if(what == "tagName"){
		return tagName;
	}
	if(what == "type"){
		return type;
	}
}
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top