Câu trả lời:
Bạn có thể truy cập các giá trị của các trường ẩn với val()
, giống như bạn có thể làm với bất kỳ yếu tố đầu vào nào khác:
<input type="hidden" id="foo" name="zyx" value="bar" />
alert($('input#foo').val());
alert($('input[name=zyx]').val());
alert($('input[type=hidden]').val());
alert($(':hidden#foo').val());
alert($('input:hidden[name=zyx]').val());
Tất cả đều có nghĩa tương tự trong ví dụ này.
Có một bộ chọn jQuery cho điều đó:
// Get all form fields that are hidden
var hidden_fields = $( this ).find( 'input:hidden' );
// Filter those which have a specific type
hidden_fields.attr( 'text' );
Sẽ cung cấp cho bạn tất cả các trường nhập và bộ lọc ẩn bởi những trường có cụ thể type=""
.
Cách hiệu quả nhất là bằng ID.
$("#foo").val(); //by id
Bạn có thể đọc thêm ở đây:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_ffic_CSS
https://developers.google.com/speed/docs/best-practices/rendering?hl=it#UseE enoughCSSSelector
Để có được giá trị, sử dụng:
$.each($('input'),function(i,val){
if($(this).attr("type")=="hidden"){
var valueOfHidFiled=$(this).val();
alert(valueOfHidFiled);
}
});
hoặc là:
var valueOfHidFiled=$('input[type=hidden]').val();
alert(valueOfHidFiled);
Để đặt giá trị, sử dụng:
$('input[type=hidden]').attr('value',newValue);
Không có gì đặc biệt về <input type="hidden">
:
$('input[type="hidden"]').val()
Nếu bạn muốn chọn một trường ẩn riêng lẻ, bạn có thể chọn nó thông qua các bộ chọn khác nhau của jQuery:
<input type="hidden" id="hiddenField" name="hiddenField" class="hiddenField"/>
$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class
Nếu bạn có asp.net HiddenField, bạn cần phải:
Để truy cập Giá trị HiddenField:
$('#<%=HF.ClientID%>').val() // HF = your hiddenfield ID
Để đặt HiddenFieldValue
$('#<%=HF.ClientID%>').val('some value') // HF = your hiddenfield ID
Xem ra nếu bạn muốn lấy một giá trị boolean từ một trường ẩn!
Ví dụ:
<input type="hidden" id="SomeBoolean" value="False"/>
(Một đầu vào như thế này sẽ được hiển thị bởi ASP MVC nếu bạn sử dụng @Html.HiddenFor(m => m.SomeBoolean)
.)
Sau đó, sau đây sẽ trả về một chuỗi 'False'
, không phải là một boolean JS!
var notABool = $('#SomeBoolean').val();
Nếu bạn muốn sử dụng boolean cho một số logic, thay vào đó hãy sử dụng cách sau:
var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }
Cách phổ quát nhất là lấy giá trị theo tên. Nó không quan trọng nếu đầu vào của nó hoặc chọn loại phần tử.
var value = $('[name="foo"]');