2013-10-06 170 views
0

我想創建一個自定義列表框來將選定的值設置爲活動的文本框,但它改變了所有的文本框(在我的例子中是2)。 我JQuery的部分:類選擇器影響所有元素

$(".txtList").click(function(event) { 
    var txtObj=$(this);  
    $("#lstSR").show(); 
    $("#lstSR TR").click(function(event) { 
     var txtIndex =($(this).find('td:eq(0)').text()); 
     txtObj.val($(this).find('td:eq(1)').text()); 
     $("#lstSR").hide(); 
    }); 
}); 

我的HTML部分:

<form id="form1" name="form1" method="post" action=""> 
<label for="txtList">My label</label> 
<input type="text" name="txtList" class="txtList" /> 
<label for="txtList">My label 2</label> 
<input type="text" name="txtList2" class="txtList" /> 
</form> 
+3

爲什麼你的'$'包裝在''''''中? –

+1

@PatsyIssa新用戶有時會遇到代碼格式問題。 –

+0

@ShadowWizard其餘的代碼格式正確,我正在檢查它是否來自他的實際代碼 –

回答

2

你每次都綁定的其他處理程序中單擊任何文本框,這就是它的「影響的所有元素」的原因。

沒有進入完全的代碼優化,以最少的代碼更改修復將結合新的人之前先簡單地解除綁定單擊處理程序:

("#lstSR TR").unbind("click").click(function(event) { 
    //... 
} 

Live test case

+0

謝謝。這樣做的工作。 – dahas