2016-11-21 90 views
0

我有一個動態生成的網格,其中包含x個文本框。隨着每個文本框的生成,我給它一個OnChange事件,它是一個設置函數。在文本框中定義OnChange時捕獲文本框的值

Html.TextBox(... new { @onchange = "ChangeItemQuantity(" + vm.ID + ", " + fk.id + ")" ... 

所以當它的呈現,它看起來像這樣:

<input ... type="text" onchange="ChangeItemQuantity(1939, 3)" /> 

然後,在腳本部分:

function ChangeItemQuantity(ItemId, ForeignKeyId) { 
    ... 
} 

在ChangeItemQuantity()函數,我怎麼會還捕捉文本框的新值?我真的不想在文本框中使用id,因爲它是包含許多文本框的網格的一部分。

我應該將它作爲參數傳入嗎?如果是這樣,渲染文本框的代碼的語法是什麼?

或者,有沒有一種方法可以捕獲是JavaScript內的功能?

謝謝!

+1

'@ Html.TextBox(....新{@類= 「ABC」 數據ID的監聽= 「...」,data-fk =「...」})'和$('。abc')。change(function(){var value = $(this).val(); var id = $ (this).data('id'); var fk = $(this).data('fk'); .....' –

+0

建議您還閱讀[Unobtrusive JavaScript](https://en.wikipedia。 org/wiki/Unobtrusive_JavaScript) –

回答

1

如果要將數據存儲在html元素中,爲什麼不使用數據屬性?

設置他們像這樣

@Html.TextBox(.... new { @class="someClass" data-vmId="vm.ID", data-fkId="fk.id" }) 

然後設置該類

$('.someClass').change(function() { 
    var value = $(this).val(); 
    var vmid = $(this).data('vmid'); 
    var fkid = $(this).data('fkid'); 
} 
+0

我無法得到這個工作。http://stackoverflow.com/questions/4 0733589/textbox-class-onchange-event-listener-not-working-with-multiple-classes/40733672?noredirect = 1#comment68694142_40733672 –

+0

我發佈了一個新問題,提供更多詳細信息:http://stackoverflow.com/questions/40734094 /如何對奪值對的一文本框從 - 一個電平變化事件 –