将选择下拉值与另一个输入进行比较并显示匹配的值

时间:2014-04-04 01:57:46

标签: javascript jquery

HTML code:

<div class="controls" id="display">
<input type="text" name="demos" class="" value="1" id="displays"/>
<select class="input-medium">
 <option value="">Select</option>
 <option value="1">II</option>
 <option value="2">AS</option>
 <option value="3">AR</option>
</select>
</div>

Jquery代码:

$("input[name='demos']").each(function(i,e){
  var SValue = $('#displays').val();   
     $('option[value=' + SValue + ']').attr('selected',true);   
}); 

我将多次将上述HTML代码显示为动态代码。

我将把#displays的值与select选项进行比较,并将select选项设为选中状态。

#displays中的值来自数据库。

因为,当我将不同的值从数据库传递给多个代码时,我使用了多次上面的html代码。所有多个代码仅显示第一个html代码选择值。

但是,我希望所有多个html代码都能将所选值显示给各自的#displays。

在调试中我发现$(&#34;输入[name =&#39;演示&#39;]&#34;)。每个(函数(i,e){未正确执行因为我放Svalue的控制台只显示所有多个html代码的第一个html代码输入值。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

尝试

$("input#displays").each(function(i,e){

});

答案 1 :(得分:0)

在HTML中,ID属性是唯一的。您不能在同一页面中为多个控件使用相同的ID。所以,你需要使用另一种方法。

我会做类似的事情:

$("div.controls").each(function() {
    $(this).children("select").eq(0).val($(this).children("input").eq(0).val());
});

编辑:它有效,我刚刚做了 this demo

答案 2 :(得分:0)

试试这个:

$("#displays").blur(function () {
    var data = $(this).val();
    $("#select > option").each(function () {
        if (this.value == data) 
            $(this).attr("selected", "selected");       
    });
 });

此示例将从用户获取输入,然后系统将选择匹配值。

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