/    Sign up×
Community /Pin to ProfileBookmark

validate 2 select lists?

I need help please. I’m trying to validate when a user selects an item from the equipment select list they must select a reason code as to why they are ordering the item. This must work across all rows. Also the field to the left of the equipment select list should allow the user to key in the item # of the part and the select list automatically gets selected with the part. How the heck do I do this. I tried the functions I have included but they suck! Please help me Tracy

[CODE]<script>

function validateReason(){
var tr, i=1;
while(tr=document.getElementById(‘Child’+(i++))){
var txtV=tr.getElementsByTagName(‘input’)[0].value
var selS=tr.getElementsByTagName(‘select’)[0].selectedIndex;
if(txtV.length>0&&selS==0){alert(‘If you enter a quantity you must select a reason!’);return false}
}
}

function change_uids(uid){
var uids = document.getElementById(“uids”);
for (var i=0; i<uids.options.length; i++){
if (uids.options[i].value == uid.value){
uids.options[i].selected = true;
break;
}
}
}

</script>
<form method=”POST” onsubmit=”return validateReason(this) ;” action=”” name=”theForm” >
<table>
<tr id=’Child1′>
<td><input type = ‘text’ MAXLENGTH=’3′
style = ‘width:40px’; class=’textfield’ name=’quantity[]’ ></td>
<td><input type = ‘text’ MAXLENGTH=’6′
style = ‘width:60px’; class=’textfield’ onkeyup=’change_uids(this)’ id=’uid’ name=’wic[]’ ></td>
<td>
<select size=’1′ STYLE=’width: 270px’ class=’smallDrop’ id=’uids’ name=’itemid[]’>
<option value=” > – Choose Equipment – </option>
<option value=’112233′ > ZENTIH – </option>
<option value=’332244′ > EMERSON – </option>
<option value=’0949′ >LG</option>
<option value=’99623′ >SONY</option>
</select>
</td> <td>
<select size=’1′ STYLE=’width: 130px’ class=’smallDrop’ name=’reason_codes[]’>
<option value=” > – SET REASON – </option>
<option value=’BROKEN’ >BROKEN</option>
<option value=’ENTERED’ >ENTERED</option>
<option value=’SHORT’ >SHORT</option>
</select>
</td></tr>
<tr id=’Child2′>
<td><input type = ‘text’ MAXLENGTH=’3′
style = ‘width:40px’; class=’textfield’ name=’quantity[]’ ></td>
<td><input type = ‘text’ MAXLENGTH=’6′
style = ‘width:60px’; class=’textfield’ onkeyup=’change_uids(this)’ id=’uid’ name=’num[]’ ></td>
<td>
<select size=’1′ STYLE=’width: 270px’ class=’smallDrop’ id=’uids’ name=’itemid[]’>
<option value=” > – Choose Equipment – </option>
<option value=’112233′ > ZENTIH – </option>
<option value=’332244′ > EMERSON – </option>
<option value=’0949′ >LG</option>
<option value=’99623′ >SONY</option>
</select>
</td> <td>
<select size=’1′ STYLE=’width: 130px’ class=’smallDrop’ name=’reason_codes[]’>
<option value=” > – SET REASON – </option>
<option value=’BROKEN’ >BROKEN</option>
<option value=’ENTERED’ >ENTERED</option>
<option value=’SHORT’ >SHORT</option>
</select>
</td></tr>
<tr id=’Child3′>
<td><input type = ‘text’ MAXLENGTH=’3′
style = ‘width:40px’; class=’textfield’ name=’quantity[]’ ></td>
<td><input type = ‘text’ MAXLENGTH=’6′
style = ‘width:60px’; class=’textfield’ onkeyup=’change_uids(this)’ id=’uid’ name=’part[]’ ></td>
<td>
<select size=’1′ STYLE=’width: 270px’ class=’smallDrop’ id=’uids’ name=’itemid[]’>
<option value=” > – Choose Equipment – </option>
<option value=’112233′ > ZENTIH – </option>
<option value=’332244′ > EMERSON – </option>
<option value=’0949′ >LG</option>
<option value=’99623′ >SONY</option>
</select>
</td>
<td>
<select size=’1′ STYLE=’width: 130px’ class=’smallDrop’ name=’reason_codes[]’>
<option value=” > – SET REASON – </option>
<option value=’BROKEN’ >BROKEN</option>
<option value=’ENTERED’ >ENTERED</option>
<option value=’SHORT’ >SHORT</option>
</select>
</td></tr>
</table>
<input type=”submit” value=”SUBMIT” name=”submit”>
</form>[/CODE]

to post a comment
JavaScript

2 Comments(s)

Copy linkTweet thisAlerts:
@tirnaJan 14.2011 — This validates the 2 select lists for each row.

[CODE]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"[URL]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/URL]">
<html xmlns="[URL]http://www.w3.org/1999/xhtml[/URL]">
<head>
<title></title>
<script type="text/javascript">
function validateReason() {
var selItems = document.getElementsByName('itemid[]');
var selReasons = document.getElementsByName('reason_codes[]');
errorsA = new Array();
for(i=0; i < selItems.length; i++) {
if(selItems[i].selectedIndex == 0) { //this select has not been used
selReasons[i].selectedIndex = 0;
} else { //an item has been selected
if(selReasons[i].selectedIndex == 0) {
errorsA.push(selItems[i].options[selItems[i].selectedIndex].innerHTML);
}
}
}
if(errorsA.length > 0) { //there were errors
var str = "the following items did not have a reason selected:nn";
for(i=0; i < errorsA.length; i++) {
str += errorsA[i]+"n";
}
alert(str);
return false;
} else {
alert("All items had a reason selected");
return true;
}
}
</script>
</head>
<body>
<form method="POST" onsubmit="return validateReason() ;" action="" name="theForm" >
<table>
<tr id='Child1'>
<td><input type = 'text' MAXLENGTH='3' class='textfield' name='quantity[]' /></td>
<td><input type = 'text' MAXLENGTH='6' class='textfield' id='uid' name='wic[]' /></td>
<td>
<select class='smallDrop' id='uids' name='itemid[]'>
<option value='' selected="selected" > - Choose Equipment - </option>
<option value='112233' > ZENTIH - </option>
<option value='332244' > EMERSON - </option>
<option value='0949' >LG</option>
<option value='99623' >SONY</option>
</select>
</td> <td>
<select class='smallDrop' name='reason_codes[]'>
<option value='' selected="selected" > - SET REASON - </option>
<option value='BROKEN' >BROKEN</option>
<option value='ENTERED' >ENTERED</option>
<option value='SHORT' >SHORT</option>
</select>
</td></tr>
<tr id='Child2'>
<td><input type = 'text' MAXLENGTH='3' class='textfield' name='quantity[]' /></td>
<td><input type = 'text' MAXLENGTH='6' style = 'width:60px' class='textfield' onkeyup='change_uids(this)' id='uid' name='num[]' /></td>
<td>
<select size='1' STYLE='width: 270px' class='smallDrop' id='uids' name='itemid[]'>
<option value='' selected="selected" > - Choose Equipment - </option>
<option value='112233' > ZENTIH - </option>
<option value='332244' > EMERSON - </option>
<option value='0949' >LG</option>
<option value='99623' >SONY</option>
</select>
</td> <td>
<select class='smallDrop' name='reason_codes[]'>
<option value='' selected="selected" > - SET REASON - </option>
<option value='BROKEN' >BROKEN</option>
<option value='ENTERED' >ENTERED</option>
<option value='SHORT' >SHORT</option>
</select>
</td></tr>
<tr id='Child3'>
<td><input type = 'text' MAXLENGTH='3' class='textfield' name='quantity[]' /></td>
<td><input type = 'text' MAXLENGTH='6' class='textfield' onkeyup='change_uids(this)' id='uid' name='part[]' />
</td>
<td>
<select size='1' STYLE='width: 270px' class='smallDrop' id='uids' name='itemid[]'>
<option value='' selected="selected" > - Choose Equipment - </option>
<option value='112233' > ZENTIH - </option>
<option value='332244' > EMERSON - </option>
<option value='0949' >LG</option>
<option value='99623' >SONY</option>
</select>
</td>
<td>
<select size='1' STYLE='width: 130px' class='smallDrop' name='reason_codes[]'>
<option value='' selected="selected" > - SET REASON - </option>
<option value='BROKEN' >BROKEN</option>
<option value='ENTERED' >ENTERED</option>
<option value='SHORT' >SHORT</option>
</select>
</td></tr>
</table>
<input type="submit" value="SUBMIT" name="submit" />
</form>
</body>
</html>
[/CODE]
Copy linkTweet thisAlerts:
@tirnaJan 14.2011 — This automatically selects the part option in the select for the user entered part id.
[CODE]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"[URL]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/URL]">
<html xmlns="[URL]http://www.w3.org/1999/xhtml[/URL]">
<head>
<title></title>
<script type="text/javascript">
function validateReason() {
errorsA = new Array();
for(i=0; i < selItems.length; i++) {
if(selItems[i].selectedIndex == 0) { //this select has not been used
selReasons[i].selectedIndex = 0;
} else { //an item has been selected
if(selReasons[i].selectedIndex == 0) {
errorsA.push(selItems[i].options[selItems[i].selectedIndex].innerHTML);
}
}
}
if(errorsA.length > 0) { //there were errors
var str = "the following items did not have a reason selected:nn";
for(i=0; i < errorsA.length; i++) {
str += errorsA[i]+"n";
}
alert(str);
return false;
} else {
alert("All items had a reason selected");
return true;
}
}
window.onload=function() {
selItems = document.getElementsByName('itemid[]');
selReasons = document.getElementsByName('reason_codes[]');
partIdObj = document.getElementsByName('partId');
for(i=0; i < partIdObj.length; i++) {
partIdObj[i].num = i;
partIdObj[i].onkeyup = function() {
selectItem(this.num,this.value);
}
}
}
function selectItem(selNum,prodId) {
for(i=0; i < selItems[selNum].options.length; i++) {
if(selItems[selNum].options[i].value == prodId) {
selItems[selNum].options[i].selected = true;
i = selItems[selNum].options.length;
}
}
}
</script>
</head>
<body>
<form method="POST" onsubmit="return validateReason() ;" action="" name="theForm" >
<table>
<tr id='Child1'>
<td><input type = 'text' MAXLENGTH='3' class='textfield' name='quantity[]' /></td>
<td><input type = 'text' MAXLENGTH='6' class='textfield' name='partId' /></td>
<td>
<select class='smallDrop' id='uids' name='itemid[]'>
<option value='' selected="selected" > - Choose Equipment - </option>
<option value='112233' > ZENTIH - </option>
<option value='332244' > EMERSON - </option>
<option value='0949' >LG</option>
<option value='99623' >SONY</option>
</select>
</td> <td>
<select class='smallDrop' name='reason_codes[]'>
<option value='' selected="selected" > - SET REASON - </option>
<option value='BROKEN' >BROKEN</option>
<option value='ENTERED' >ENTERED</option>
<option value='SHORT' >SHORT</option>
</select>
</td></tr>
<tr id='Child2'>
<td><input type = 'text' MAXLENGTH='3' class='textfield' name='quantity[]' /></td>
<td><input type = 'text' MAXLENGTH='6' class='textfield' name='partId' /></td>
<td>
<select size='1' STYLE='width: 270px' class='smallDrop' name='itemid[]'>
<option value='' selected="selected" > - Choose Equipment - </option>
<option value='112233' > ZENTIH - </option>
<option value='332244' > EMERSON - </option>
<option value='0949' >LG</option>
<option value='99623' >SONY</option>
</select>
</td> <td>
<select class='smallDrop' name='reason_codes[]'>
<option value='' selected="selected" > - SET REASON - </option>
<option value='BROKEN' >BROKEN</option>
<option value='ENTERED' >ENTERED</option>
<option value='SHORT' >SHORT</option>
</select>
</td></tr>
<tr id='Child3'>
<td><input type = 'text' MAXLENGTH='3' class='textfield' name='quantity[]' /></td>
<td><input type = 'text' MAXLENGTH='6' class='textfield' name='partId' />
</td>
<td>
<select size='1' STYLE='width: 270px' class='smallDrop' id='uids' name='itemid[]'>
<option value='' selected="selected" > - Choose Equipment - </option>
<option value='112233' > ZENTIH - </option>
<option value='332244' > EMERSON - </option>
<option value='0949' >LG</option>
<option value='99623' >SONY</option>
</select>
</td>
<td>
<select size='1' STYLE='width: 130px' class='smallDrop' name='reason_codes[]'>
<option value='' selected="selected" > - SET REASON - </option>
<option value='BROKEN' >BROKEN</option>
<option value='ENTERED' >ENTERED</option>
<option value='SHORT' >SHORT</option>
</select>
</td></tr>
</table>
<input type="submit" value="SUBMIT" name="submit" />
</form>
</body>
</html>
[/CODE]
×

Success!

Help @tracy50 spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.8,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...