我有一個選擇器,可以選擇具有給定 ID 的多個輸入。我有一個輸入事件,當輸入更改為其中一個輸入時觸發。我想檢查哪個輸入索引位置觸發了輸入事件。我想它們會被堆疊起來,或者在我的情況下它們將是存盤在陣列中的 Id 串列。
var getsIds $("#nameInput");
$(getsIds).on('input', function()){
//which event index from getsIds has triggered the input event
}
其中#nameInput是視圖中生成的輸入串列,它們都共享相同的 ID:
foreach(var items in Model){
<input type="text" id="nameInput" value="@items.name" >
}
最重要的是,我想對觸發事件的輸入設定驗證,使它們保持相同的 ID。當它們都共享相同的 Id 時,如何檢查哪個輸入觸發了事件?
uj5u.com熱心網友回復:
ID 應該是唯一的——一個頁面上只有一個元素應該有一個 ID。當您$('#nameInput')用來全選它們時,它只會選擇第一個,因為 jQuery 預計只有一個具有該 ID 的元素。
您可以改為添加類名:
<input type="text" id="nameInput1" class='nameInput' value="1" >
<input type="text" id="nameInput2" class='nameInput' value="2" >
<input type="text" id="nameInput3" class='nameInput' value="3" >
<input type="text" id="nameInput4" class='nameInput' value="4" >
<input type="text" id="nameInput5" class='nameInput' value="5" >
然后,您可以全部選擇它們,并使用父元素中的 ID 或索引(假設它們都在同一個父元素中)來確定哪個被更改了。this在偵聽器中將參考剛剛更改的 HTML 元素,$(this)并將該元素更改為要操作的 jQuery 物件。
var getsIds = $(".nameInput");
$(getsIds).on('input', function(){
console.log($(this).attr('id'));
console.log($(this).index());
});
https://jsfiddle.net/yLdqhv8a/
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315386.html
