[英]How to use JQuery to select a hidden form field value that is part of an array of hidden form field values?
我在選擇隱藏表單字段值時遇到了麻煩,該表單字段值是具有相同名稱的隱藏表單字段值數組的一部分。 數組的一個元素如下所示:
<input data-val="true" data-val-number="The field ProductId must be a number." data-val-required="The ProductId field is required." id="OrderItemViewModels_2__ProductId" name="OrderItemViewModels[2].ProductId" type="hidden" value="3" />
我嘗試在JQuery中通過幾種不同的方式來選擇它,例如:
$('#OrderItemViewModels[2].ProductId').val());
和..
$('#OrderItemViewModels\\[2\\].ProductId').val());
兩者都不起作用。 我也嘗試了其他一些方法。 因此,我嘗試了以下建議,希望僅在警報中打印這些值。 我嘗試了這些:
alert('valueDirect2=' + $('#OrderItemViewModels_2__ProductId')).val();
alert('valueDirect1=' + $('input[name="OrderItemViewModels[2].ProductId"]')).val();
在兩種情況下,這都導致打印valueDirect2 = [Object object]。 為什么? 怎么了
我對如何獲得這些價值一無所知。 有什么幫助嗎?
您是否需要動態設置,即即時更改選擇了哪個input
字段? 如果是這樣,則需要在選擇器的中間添加一個變量。
如果您像這樣修改現有的代碼,它將起作用:
$('#OrderItemViewModels_2__ProductId').val();
您的兩個示例無效,因為您正在格式化選擇器字符串,類似於name
屬性,但是#
前綴告訴jQuery查找id
屬性。
也可以通過名稱選擇元素,如下所示:
$('input[name="OrderItemViewModels[2].ProductId"]').val();
在您的alert
示例中,您看到的是[Object object]
因為jQuery中的$
語法是調用jQuery函數的快捷方式。 您真正在做什么是這樣的:
jQuery('input[name="OrderItemViewModels[2].ProductId"]').val();
這只是一個普通的舊函數調用。 S
是方便的簡寫。 您正在調用一個函數並傳入一個字符串,這是jQuery將評估的選擇器。
您的選擇器未返回任何內容,因為其格式不正確,因此您最終將打印jQuery函數本身的.val()
或值。 直到您對jQuery的工作原理有了很好的了解之前,這有點令人困惑。
為了使選擇器具有動態性,只需將包含要選擇的input
編號的變量周圍的字符串拼接在一起:
$('input[name="OrderItemViewModels[' + myVariable + '].ProductId"]').val();
這是一個jsFiddle ,說明了這兩個選項。
$('input[name="OrderItemViewModels['+ index +'].ProductId"]').val(); // index = 0,1,2...
要么
$('#OrderItemViewModels_'+ index +'__ProductId').val(); // index = 0,1,2...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.