如何在带数组的选择框中获取值

时间:2015-01-29 06:00:47

标签: javascript jquery html

我想从选择框中获取值并将该值放到文本框中。我尝试使用jquery,但这不起作用。这是我的代码:

<select name="a[0]">
   <option value=1>AA</option>
   <option value=2>BB</option>
</select>
<input type="text" name="val[0]">

<select name="a[1]">
   <option value=1>AA</option>
   <option value=2>BB</option>
</select>
<input type="text" name="val[1]">

我的jquery:

$("[name=a]").change(function(){
  var d = $(this).val();
  console.log(d);
  $("[name=val]").val(d);
});

我想放置值表单选择框并将该值放到每个文本框中。

6 个答案:

答案 0 :(得分:0)

这是小提琴http://jsfiddle.net/byg9e71v/

使用

$("select[name^=a]").change(function(){
  var d = $(this).val();
  console.log(d);
});

答案 1 :(得分:0)

您可以动态生成以下选择列表及其文本输入,以下是如何执行此操作的示例:

<select name="a_0" onclick='onselectlistclick("0")'>
       <option value=1>AA</option>
       <option value=2>BB</option>
    </select>
    <input type="text" name="val_0">

    <select name="a_1" onclick='onselectlistclick("1")'>
       <option value=1>AA</option>
       <option value=2>BB</option>
    </select>
    <input type="text" name="val_1">


    <script>
    function onselectlistclick(id) {
        $("#val_"+ id).val($("#a_" + id + " option:selected").val());
    }
    </script>

答案 2 :(得分:0)

只需用此替换您的代码

 $("select").change(function(){
 var d = $(this).find( "option:selected" ).text();
 console.log(d);
});

答案 3 :(得分:0)

我认为这不是制作元素名称索引的好方法。相反,您可以获取所选值并将其设置为它的下一个文本元素

$("select[name=a]").change(function(){
     // get index of your select control
     console.log($(this).index("select"));

     // this line will set the selected value to it's immediate next element. You can also handle on which elements you want to show the selected value by specifying the type ,name or class of the element.
     $(this).next().val($(this).val());
});

jsFiddle

答案 4 :(得分:0)

HTML:

<select name="a[0]">
   <option >AA</option>
   <option>BB</option>
</select>
<input type="text" name="val[0]">

<select name="a[1]">
   <option >AA</option>
   <option >BB</option>
</select>
<input type="text" name="val[1]">

JS

 $("select").change(function(){
 var d = $(this).find( "option:selected" ).text();
 $(this).next("input[type='text']").val(d);
});

http://jsfiddle.net/byg9e71v/1/

答案 5 :(得分:-1)

试试这个,

  

$(“[name ^ = a]”) - 属性名称以

开头      

$(“[name * = a]”) - 属性名称包含

     

$(this).next() - 此

的下一个元素
$(function () {
     $("[name^=a]").change(function () {
         var d = $(this).val();
            console.log(d);
            $(this).next().val(d);
      });
});