Jquery - 选择选项时填写输入文本

时间:2011-06-19 23:49:01

标签: javascript jquery arrays forms

我有这个表格的元素:

<form ...>
    <select name="type[]" id="type[]">
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
    <input type="text" name="tvalue[]" id="tvalue[]" />

    <select name="type[]" id="type[]">
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
    <input type="text" name="tvalue[]" id="tvalue[]" />
    ...

    <input type="submit" value="send" />
</form>

所以,我需要在选择选项元素更改时填充输入文本元素。 (元素数组?) 请有人帮助我吗?

上面的标记是这个PHP脚本的结果(我更改了上面的标记):

<?php
echo "<form name='form1' id='form1' action=\"#\" method='post'>";
for ($i=0; $i<5; $i++){
echo "<select name='type[]' id='type[]'>\n";
echo "<option value ='1'>One</option>\n";
echo "<option value ='2'>Two</option>\n";
echo "</select>\n";
echo "<input type='text' name='tvalue[]' id='tvalue[]' value=''>";
}
echo "<input type='submit' name='submit' id='submit' value='enviar' />";
echo "</form>";
?>

(输入[]和tvalue [],因为我发布了这个数组)

问题是我在选择选项时需要填写输入文本。 例如,当我在第一个选择中选择选项“One”时,则输入第一个输入文本 必须显示“一个”,所以当我在第二个选择中选择一个选项时,第三个,等等... 因此,当我提交表单时,我可以获得此值。

非常感谢你! 卡洛斯。

2 个答案:

答案 0 :(得分:3)

1 - 删除它们为not valid的欺骗ID。

2 - 假设您的标记正是您发布的内容,请提供或选择更多选择和相应的文本框,并且之间不包含任何元素:

$("select[name='type[]']").change(function() {
    $("input[name='tvalue[]']").eq($(this).index()).val(this.value);
}).change(); // set initial textbox value on page load

演示:http://jsfiddle.net/NPeJL/2/

答案 1 :(得分:3)

在只有一个select和一个输入来修改

的情况下,我写下了这个例子
$('select#id1').change(function(){ //the event here is change
    if ($(this).val() === "1" ) //check the value into the select
    {
        $('input#id2').val("ONE!"); //change the value into the input
    }
    else
    {
        $('input#id2').val("TWO!"); //change the value into the input
    }
});