Choosing visible form elements

A

Anna

Hi all.
I have a javascript function that loops throught all text boxes inside
a form:

var elems = document.formName.elements;
for(i = 0; i < elems.length; i++) {
if(elems.type && elems.type.toLowerCase()=="text")
do something
}

This way it goes through every single text box in the form.
But in my form structure, some form elements (text boxes included)
are inside invisible divs.
And what I actually want to do, is to check only the text boxes
that are not inside invisible divs.
Is there a way to say in javascript something like:
choose only textbox that is not inside element (div) whose
className='invisible'?

Or maybe I should try a different approach, instead looping through
all form elements?

Thank you very much for your help.
Sorry if I'm asking stupid questions, I'm not very good with
javascript yet.

Anna
 
V

Vjekoslav Begovic

Anna said:
And what I actually want to do, is to check only the text boxes
that are not inside invisible divs.
Is there a way to say in javascript something like:
choose only textbox that is not inside element (div) whose
className='invisible'?

function contains(parent,child){
if (parent==child) return true;
var t = child;
if (t && t.parentNode){
if (t.parentNode == parent)
return true;
else
return contains(parent,t.parentNode)
}
return false;
}

var myForm=document.getElementById("your_form_id");
var invisibleDivs=new Array();
var divs=myForm.getElementsByTagName("DIV");
for (var i=0; i<divs.length; i++){
if (divs.item(i).className == "invisible")){
invisibleDivs.push(divs.item(i));
}
}
var textBoxes = myForm.getElementsByTagName("INPUT");
for (var i=0; i<textBoxes.length; i++){
var currentTxtBox = textBoxes.item(i);
if (currentTxtBox.type == "text"){
var good=true;
for (var j=0;j<invisibleDivs.length;j++){
if (contains(invisibleDivs.item(j),currentTextBox)){
good=false;break;
}
}
if (good){
//your code here
}
}
}


Not tested.
Good luck,

Vjekoslav
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top