2014-04-04 32 views
0

HTML代碼:比較與另一輸入和顯示選擇下拉值匹配一個

<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的值與選擇選項,並將選擇選項設置爲選中狀態。

#displays中的值來自數據庫。

因爲,當我將不同的值從數據庫傳遞到多個代碼時,我使用多次上述html代碼。所有的多個代碼只顯示第一個html代碼選擇的值。

但是,我想要所有的多個html代碼顯示選定的值,以其各自的#displays。在調試中,我發現$(「input [name ='demos']」)。each(function(i,e){)因爲當我把控制檯賦值給Svalue時,它只顯示第一個html代碼對於所有的多個HTML代碼的輸入值。

我怎樣才能解決這個問題??

回答

0

在HTML中,ID屬性是唯一的,你不能用相同的ID超過一個控件放在同一個頁面中,所以你需要使用另一種方法

我會做這樣的事情:

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

編輯:和它的作品,我只是做this demo

+0

It worked ..thanks .. – user3440176

0

嘗試

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

}); 
0

試試這個:

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

這個例子會得到用戶的輸入,然後系統會選擇匹配的值。

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

相關問題