簡體   English   中英

如何使用JQuery選擇作為隱藏表單字段值數組一部分的隱藏表單字段值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM