Jquery 文本框中填充的选择值无效

Jquery 文本框中填充的选择值无效,jquery,forms,Jquery,Forms,为我的表单找到了完美的小脚本。它将select的值添加到文本框中 <script type='text/javascript'> //<![CDATA[ (window).load(function(){ $("select[name='type[]']").change(function() { $("input[name='tvalue[]']").eq($(this).index()).val(this.value); }).change(); }); /]]>

为我的表单找到了完美的小脚本。它将select的值添加到文本框中

<script type='text/javascript'>
//<![CDATA[ 
(window).load(function(){
$("select[name='type[]']").change(function() {
$("input[name='tvalue[]']").eq($(this).index()).val(this.value);
}).change();
});
/]]> 
</script>

// 
这就是问题所在。 有人能解释一下为什么会这样:

<select name="type[]">
    <option value="1">One</option>
    <option value="2" selected="selected">Two</option>
</select>

<select name="type[]">
    <option value="1" selected="selected">One</option>
    <option value="2">Two</option>
</select>

<input type="text" name="tvalue[]" id="tvalue[]" />
<input type="text" name="tvalue[]" id="tvalue[]" />

一个
两个
一个
两个
但是,这不是吗?(当然这是我需要的布局。):


一个
两个
一个
两个
现在的情况是,第一个选择有效,但第二个选择无效

如果我添加第三个选择和文本,第二个选择会更改第三个文本,而第三个选择不会执行任何操作

有什么想法吗?

尝试使用
.each()


我想问题可能在于你输入的id。它们真的应该是独一无二的,我记得括号也是不可以的。我不知道为什么它有时在某些布局中有效。我可能推测索引在第二个布局中被重置,而在第一个布局中没有重置-因此,您的.eq()能够在第一个布局中找到第二个匹配项,但不能在第二个布局中找到

有办法解决这个问题吗?我可能会将关联的select和input元素的名称配对,并让所有select共享一个类。在顶级选择器中使用该类,并使用“this”的name属性查找所需的输入元素

<select name="type[]">
    <option value="1">One</option>
    <option value="2" selected="selected">Two</option>
</select>

<input type="text" name="tvalue[]" id="tvalue[]" />

<select name="type[]">
    <option value="1" selected="selected">One</option>
    <option value="2">Two</option>
</select>

<input type="text" name="tvalue[]" id="tvalue[]" />
$(window).load(function(){
    $("select[name='type[]']").each(function() {
        $(this).change(function() {
            $("input[name='tvalue[]']").eq($(this).index()).val(this.value);
        }).change();
    });
});