我使用getElementById()在IE 7中工作,但在IE8和IE9中不起作用。我正在做的是我需要在选择框上进行验证,以确定它们是必需的,并检查他们选择做什么其他事情。我还需要检查输入框以查看值是什么,也是必需的。
function saveTest(){
var startNumber=0;
var endNumber=3;
// Works
alert(document.myForm.mySelect_1.value);
for (i = startNumber; i <= endNumber; i++) {
// I know this is not right but I am trying everything
alert(document.myForm.mySelect_+i.value);
// Using JQuery to try to solve the issue and this does not work for me.
alert($('#mySelect_'+i).val());
}
}
我知道这些不是动态创建的,但这只是为了帮助我找到这个问题的答案。我正在创建更多选择
<input name="myText_1" id="myText_1" value="">
<br />
<select name="mySelect_1" id="mySelect_1">
<option value="0">- - - Select One - - -</option>
<option value="1">item 1</option>
<option value="2">item 2</option>
<option value="3">item 3</option>
<option value="4">item 4</option>
<option value="5">item 5</option>
</select>
<br />
<input name="myText_2" id="myText_2" value="">
<br />
<select name="mySelect_2" id="mySelect_2">
<option value="0">- - - Select One - - -</option>
<option value="1">item 1</option>
<option value="2">item 2</option>
<option value="3">item 3</option>
<option value="4">item 4</option>
<option value="5">item 5</option>
</select>
<br />
<input name="myText_3" id="myText_3" value="">
<br />
<select name="mySelect_3" id="mySelect_3">
<option value="0">- - - Select One - - -</option>
<option value="1">item 1</option>
<option value="2">item 2</option>
<option value="3">item 3</option>
<option value="4">item 4</option>
<option value="5">item 5</option>
</select>
<br />
<a href="javascript:saveTest();">Save</a>
如果我不清楚,请告诉我。我会尽力解释你不理解的任何事情。
感谢您的时间。
答案 0 :(得分:3)
以下行不正确;您正在尝试将名为mySelect_
的变量名称连接到整数:
alert(document.myForm.mySelect_+i.value);
相反,您应该使用关联数组语法:
alert(document.myForm['mySelect_'+i].value);
此外,在同一个循环中,您应该从1
而不是0
开始,因为没有名为mySelect_0
的元素。
这是一个有效的 DEMO 。
答案 1 :(得分:2)
您已使用名称
创建了下拉列表尝试使用
$('select[name=mySelect_'+i+']').val();
否则
$("#id option:selected").text()