【发布时间】:2011-05-21 13:43:14
【问题描述】:
如何使用 jQuery 访问 <input type="hidden"> 标签的 value 属性?
【问题讨论】:
标签: javascript jquery
如何使用 jQuery 访问 <input type="hidden"> 标签的 value 属性?
【问题讨论】:
标签: javascript jquery
最通用的方法是按名称取值。它的输入或选择表单元素类型都没有关系。
var value = $('[name="foo"]');
【讨论】:
如果您想从隐藏字段中检索布尔值,请注意!
例如:
<input type="hidden" id="SomeBoolean" value="False"/>
(如果您使用@Html.HiddenFor(m => m.SomeBoolean),这样的输入将由 ASP MVC 呈现。)
那么下面会返回一个字符串'False',而不是JS布尔值!
var notABool = $('#SomeBoolean').val();
如果您想将布尔值用于某些逻辑,请改用以下内容:
var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }
【讨论】:
如果你有一个 asp.net HiddenField,你需要:
要访问 HiddenField 值:
$('#<%=HF.ClientID%>').val() // HF = your hiddenfield ID
设置 HiddenFieldValue
$('#<%=HF.ClientID%>').val('some value') // HF = your hiddenfield ID
【讨论】:
最有效的方法是通过 ID。
$("#foo").val(); //by id
您可以在这里阅读更多内容:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficient_CSS
https://developers.google.com/speed/docs/best-practices/rendering?hl=it#UseEfficientCSSSelectors
【讨论】:
要获得价值,请使用:
$.each($('input'),function(i,val){
if($(this).attr("type")=="hidden"){
var valueOfHidFiled=$(this).val();
alert(valueOfHidFiled);
}
});
或:
var valueOfHidFiled=$('input[type=hidden]').val();
alert(valueOfHidFiled);
要设置值,请使用:
$('input[type=hidden]').attr('value',newValue);
【讨论】:
您可以使用val() 访问隐藏字段的值,就像您可以在任何其他输入元素上一样:
<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());
在这个例子中,这些都是同一个意思。
【讨论】:
有一个 jQuery 选择器:
// 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' );
将为您提供所有隐藏的输入字段并按具有特定 type="" 的字段进行过滤。
【讨论】:
如果你想选择一个单独的隐藏字段,你可以通过jQuery的不同选择器来选择它:
<input type="hidden" id="hiddenField" name="hiddenField" class="hiddenField"/>
$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class
【讨论】:
<input type="hidden"> 没什么特别的:
$('input[type="hidden"]').val()
【讨论】: