jQuery val函数在隐藏字段上无法工作?

4
这是我的HTML代码:
<div style='display:none;' id='allformid'>
    <div>
        <form action='#'>
              <input type='text' name='name' id='named'/>
        </form>
    </div>
</div>

这是我的jQuery代码,用于设置输入文本框的值:

$("#allformid  #named").val('abcd');

这段 jQuery 代码是正确的,但表单值没有被更改。


因为 div 被隐藏了!请移除 style='display:none;' - Arun P Johny
2
如果你想要一个隐藏的字段,使用 <input type='hidden'> 而不是将输入框隐藏在 div 中。 - Tim Ebenezer
由于您已经为输入元素设置了ID $('#named').val('abcd');,因此可以这样做。 - Arun P Johny
3
它很可能已经被改变了,只是看起来没有。打开控制台并输入$("#named").val();,它会显示给你实际的值。 - Reinstate Monica Cellio
我的上一个问题还没有得到回答...代码是否在DOM准备好的处理程序中?例如jQuery(function(){...}) - Arun P Johny
显示剩余9条评论
3个回答

10
我试了同样的代码,它可以正常工作。你是怎么测试代码是否有效的?
如果你检查元素,它不会显示value="abcd"。但是如果你让div可见,你就能看到给出的值。但是这个值被设置了。
你也可以通过在js控制台中获取值来测试值,像这样:$("#allformid #named").val(); 然而,如果你想要它显示为value="abcd",你需要写:$("#allformid #named").attr("value",'abcd');

$("#named").attr("value",'abcd'); 这个不起作用,请帮忙解决。 - Renish Khunt
我已经尝试过了。问题似乎出在别的地方。它有显示任何错误吗? 你是如何检查它是否正常工作的? - Neville Nazerane
我不建议删除 #allformid,因为如果你将任何其他元素的 ID 设置为 named,它也会选择该元素。 - Neville Nazerane

0

0

html

<form action='#'>
      <input type='hidden' value='' name='name' id='named'/>
</form>

jQuery

$("#named").val('abcd');

1
这与问题没有任何不同,只是从选择器中省略了不需要和无关紧要的表单ID。 - Reinstate Monica Cellio
是的,这只是问题本身的一个过滤形式。 - Neville Nazerane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接