如何在IE8和IE9中使用JavaScript或JQuery获取动态创建输入的输入值和选择值?

时间:2012-09-14 15:06:52

标签: javascript jquery

我使用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>

如果我不清楚,请告诉我。我会尽力解释你不理解的任何事情。

感谢您的时间。

2 个答案:

答案 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()