14

答案汇总到另一个问题中

以下 jquery 1.3.2 代码有效:

<input type="select" value="236434" id="ixd" name='ixd' />

<script>
console.log( $('#ixd') );
console.log( $("input[name='ixd']") );
</script>

控制台显示:

[输入#ixd 236434]

[输入#ixd 236434]

但是,将输入设置为“隐藏”会阻止选择器工作。有什么线索吗?

<input type="hidden" value="236434" id="ixd" name='ixd' />

<script>
console.log( $('#ixd') );
console.log( $("input[name='ixd']") );
</script>

控制台显示:

[]

[]

4

6 回答 6

27

不知道为什么会失败。我在工作中定期做同样的事情,无论表单域是否隐藏,它都可以工作。

也许试试这个:

<input type="hidden" value="236434" id="ixd" name='ixd' />

<script>
    console.log($("#xid").val())
</script>

这将为您提供隐藏字段的值。要从表单字段中获取值,.val()需要使用该方法。

于 2009-06-15T15:14:55.713 回答
9
<input type="select" value="236434" id="ixd" name='ixd' />

这甚至是有效的标记吗?

似乎选择可见输入会检索它的值,即使没有明确调用.val(),而选择隐藏的输入不会:

尝试:

console.log( $('#ixd').val() );
console.log( $("input[name='ixd'][type='hidden']") );

console.log( $("input[name='ixd']").val() );
于 2009-06-15T15:24:01.167 回答
2

这可能是控制台的更多问题。我进行了测试,它似乎仍然抓住了元素的实例。我不能确切地告诉你在这里要做什么。

如果您只是想验证是否找到了对象,请检查长度属性

console.log( $('#xid').length );

如果您尝试获取字段的值,请使用 val 方法

console.log( $('#xid').val() );

最后,在您的解决方案中,DOM 可能尚未完全加载。确保将逻辑包装在 document.ready 调用中。

$(document).ready(function() {
    console.log( $('#xid').val() );
});
于 2009-06-15T15:21:39.567 回答
1

如果您在 ASP.Net 中执行此操作,请在运行时通过浏览器中的“查看源代码”选项检查控件的 ID。例如,如果您的控件在内容页中声明,您可能会发现您的控件 ID 不是您所期望的。在这种情况下,它将被分配一个由其母版页驱动的 ID。您可以使用 ASP.Net 内联语法来引用它的 ClientID 属性,而不是在 jQuery 中硬编码 ID,这也将保护您免受主页面或内容页面控件层次结构中的任何更改。

所以...

$('#<%= myHiddenControl.ClientID %>').val();

......会比......更好的选择

$('#ctl00_ContentPlaceHolder1_ctl00_ContentPlaceHolder1_myHiddenControl').val();

...虽然他们都会工作。

于 2012-05-10T16:15:03.867 回答
0

我遇到了问题,因为隐藏字段是嵌套的( )$('#field_id').val(),所以没有返回任何值。body > div > form > ul > li > p把它移出 ul 解决了这个问题。

于 2010-12-15T18:37:05.817 回答
0

如果上述工作都没有尝试

$('#xid').attr('value');
于 2016-03-30T02:51:19.573 回答