【问题标题】:jQuery access input hidden valuejQuery访问输入隐藏值
【发布时间】:2011-05-21 13:43:14
【问题描述】:

如何使用 jQuery 访问 <input type="hidden"> 标签的 value 属性?

【问题讨论】:

标签: javascript jquery


【解决方案1】:

最通用的方法是按名称取值。它的输入或选择表单元素类型都没有关系。

var value = $('[name="foo"]');

【讨论】:

    【解决方案2】:

    如果您想从隐藏字段中检索布尔值,请注意!

    例如:

    <input type="hidden" id="SomeBoolean" value="False"/>
    

    (如果您使用@Html.HiddenFor(m =&gt; m.SomeBoolean),这样的输入将由 ASP MVC 呈现。)

    那么下面会返回一个字符串'False',而不是JS布尔值!

    var notABool = $('#SomeBoolean').val();
    

    如果您想将布尔值用于某些逻辑,请改用以下内容:

    var aBool = $('#SomeBoolean').val() === 'True';
    if (aBool) { /* ...*/ }
    

    【讨论】:

      【解决方案3】:

      如果你有一个 asp.net HiddenField,你需要:

      要访问 HiddenField 值:

      $('#<%=HF.ClientID%>').val()  // HF = your hiddenfield ID
      

      设置 HiddenFieldValue

      $('#<%=HF.ClientID%>').val('some value')   // HF = your hiddenfield ID
      

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          要获得价值,请使用:

          $.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);
          

          【讨论】:

            【解决方案6】:

            您可以使用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());
            

            在这个例子中,这些都是同一个意思。

            【讨论】:

            • alert($('input[type=hidden]#foo').val());这会找到 id 为 foo 的隐藏变量。此搜索更具体。
            • @MohammedRafeeq alert($('#foo').val());一样具体。因为 id 在 DOM 中是唯一的。因此,如果 html 遵循标准,它将始终只找到一个元素。除非你使用语句来检查元素是否隐藏。
            • 什么更快? $('#foo') 还是 $('input:hidden#foo') ?我怀疑第二个,因为给出了更多搜索信息,但不确定它是如何实现的,所以不知道我的感觉是否正确。编辑:好的,感谢 Abel 的评论,我得到了答案,只有 ID,即 #foo 更快。
            【解决方案7】:

            有一个 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="" 的字段进行过滤。

            【讨论】:

            • 请注意,这还将匹配 CSS 显示值为 none 的元素、宽度和高度设置为 0 的元素以及具有隐藏祖先的元素 (api.jquery.com/hidden-selector)
            【解决方案8】:

            如果你想选择一个单独的隐藏字段,你可以通过jQuery的不同选择器来选择它:

            <input type="hidden" id="hiddenField" name="hiddenField" class="hiddenField"/> 
            
            
            $("#hiddenField").val(); //by id
            $("[name='hiddenField']").val(); // by name
            $(".hiddenField").val(); // by class
            

            【讨论】:

            • 输入隐藏没有样式类属性
            【解决方案9】:

            &lt;input type="hidden"&gt; 没什么特别的:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-08-18
              • 1970-01-01
              相关资源
              最近更新 更多