Truy cập jQuery giá trị ẩn


Câu trả lời:


347

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.


11
alert ($ ('input [type = hidden] #foo'). val ()); Điều này tìm thấy các biến ẩn với id foo. Tìm kiếm này là cụ thể hơn.
Mohammed Rafeeq

6
@MohammedRafeeq cảnh báo ($ ('# foo'). Val ()); Chỉ là cụ thể. Bởi vì một id là duy nhất trong DOM. Do đó, nó sẽ luôn chỉ tìm thấy một phần tử nếu html tuân theo các tiêu chuẩn. Trừ khi bạn sử dụng câu lệnh để kiểm tra xem phần tử có bị ẩn hay không.
Edwin Stoteler

1
cái gì nhanh hơn $ ('# foo') hoặc $ ('đầu vào: ẩn # foo')? Tôi nghi ngờ lần thứ hai kể từ khi có thêm thông tin tìm kiếm được cung cấp nhưng không chắc cách thức triển khai, vì vậy không biết cảm giác của tôi có đúng không. EDIT: ok tôi có câu trả lời của tôi nhờ bình luận của Abel, chỉ id, tức là #foo nhanh hơn.
comte

15

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="".


2
Lưu ý rằng điều này cũng sẽ khớp với các phần tử không có giá trị hiển thị CSS, các phần tử có chiều rộng và chiều cao được đặt thành 0 và các phần tử có tổ tiên ẩn ( api.jquery.com/hidden-selector )
Daniel Liuzzi


6

Để 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);

4

Không có gì đặc biệt về <input type="hidden">:

$('input[type="hidden"]').val()

3

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

Đầu vào ẩn không có thuộc tính lớp kiểu
Philip Puthenvila

3

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

1

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) { /* ...*/ }

-1

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"]');
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.