为了验证两个下拉列表的选项是否都被选中,就用for循环写了一段代码:
function checkadd(){
for(var i = 1; i < madeAdd.length; i++){
for(var c = 1; c < madeAdd1.length; c++){
if(madeAdd.options[i].selected == true && madeAdd.options[c].selected == true){
return 1;
}
else{
return 2;
}
}
}
}
下面是验证的代码:
if(checkadd() == 2){
alert("请选择籍贯");
return false;
}
可是,没有想要的效果,第二个下拉列表的选项没被选中,表单也可以被提交。找了好久,找不出问题所在。只能请高人帮忙了~~~~~
function checkadd(){
for(var i = 1; i < madeAdd.length; i++){
for(var c = 1; c < madeAdd1.length; c++){
if(madeAdd.options[i].selected == true && madeAdd.options[c].selected == true){
return 1;
}
else{
return 2;
}
}
}
}
下面是验证的代码:
if(checkadd() == 2){
alert("请选择籍贯");
return false;
}
可是,没有想要的效果,第二个下拉列表的选项没被选中,表单也可以被提交。找了好久,找不出问题所在。只能请高人帮忙了~~~~~
if(madeAdd.options[i].selected == true && madeAdd.options[c].selected == true){
//问题出在这一句.应该改为
//if(madeAdd.options[i].selected == true && madeAdd1.options[c].selected == true){
<select name="address" onchange="madeadd()">
<option value=""></option>
<option value="hb">湖北</option>
<option value="hn">湖南</option>
</select>
<select name="address1">
<option value="">    </option>
<option></option>
<option></option>
<option></option>
<option></option>
<option></option>
<option></option>
<option></option>
</select>
下面是脚本部分的代码:
var madeAdd = document.forms[0].address;
var madeAdd1 = document.forms[0].address1;
function checkadd(){
for(var i = 1; i < madeAdd.length; i++){
for(var c = 1; c < madeAdd1.length; c++){
if(madeAdd.options[i].selected == true && madeAdd.options[c].selected == true){
return 1;
}
else{
return 2;
}
}
}
}
if(checkadd() == 2){
alert("请选择籍贯");
return false;
}
麻烦看一下,是哪出了问题
虽然是两层循环,但经过第一次判断后,一定会终止循环.可一次判断只能判断出第一项元素是否被选种.做法是不是应改为这样:下拉默认选中的都是第一项,你判断madeAdd.value是不是等于第一项的value,并madeAdd1.value不等于第一项的value,这样就表示选中了.其他情况没全选中
if(madeAdd.value && madeAdd1.value){
alert('都选中了');
}else{
alert('没全选中');
}
只在onsubmit事件里判断,或者提交的时候,js判断就可以,不用onchange事件
正常情况下.除了第一项,别的项应该都不为空的.所以,可以用if(madeAdd.value && madeAdd1.value){//如果是空的,转换为boolean就是false,用于value不为空字符串的情况.
alert('都选中了');
}else{
alert('没全选中');
}
if(madeAdd.options[i].selected == true && madeAdd1.options[c].selected == true){
和
if(madeAdd.options[i].selected == true && madeAdd.options[c].selected == true){
不一样吧.下面一个少了个1