无法在隐藏的输入元素上设置值

时间:2010-10-06 07:24:44

标签: javascript jquery html dom

我在设置隐藏输入元素的值时遇到问题。我尝试过使用jQuery和$("#SomeHiddenElement").val(sSomeValue)函数,以及普通的JS document.getElementById("SomeHiddenElement").value = sSomeValue;,但没有任何作用......

当我将元素设置为文本类型时,它可以正常工作......

问题在FF和IE中都存在。

有什么想法吗?

代码:

<input type="hidden" id="SomeHiddenElement" name="SomeHiddenElement" value="" />

document.getElementById("SomeHiddenElement").value = "Testing";

6 个答案:

答案 0 :(得分:6)

因为我不相信firebug在更新它的DOM表示时遇到问题,并且你的代码在孤立的情况下运行良好,并且你没有文本输入的问题,我自己从来没有遇到过更新隐藏输入的问题,我会建议其他东西对隐藏的输入采取行动来阻止你正在做的事情。

我建议您创建一个剥离了所有内容的测试页,除了您在此处提供的内容,然后逐步添加功能以实现真实页面的状态。在某些时候它会破裂,你至少会知道问题所在。

答案 1 :(得分:2)

伙计们我很抱歉......问题出在Firebug和我的邮政处理代码的组合中......我已经修好了......

故事的道德:仔细检查代码,不要盲目相信Firebug。

谢谢你的麻烦!

答案 2 :(得分:1)

你的代码很好。

<!DOCTYPE html>
<html>
<head> 
   <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
   <title>Setting the value of a hidden field</title> 
</head> 
<body> 
  <input type="hidden" id="SomeHiddenElement" value="">
  <script>
    document.getElementById('SomeHiddenElement').value = 'Hello World';
  </script>

  <script>
    // Will alert 'Hello World'
    alert(document.getElementById('SomeHiddenElement').value);
  </script>
</body> 
</html>

您是如何测试隐藏字段的值未设置的?由于隐藏字段是不可见的,因此您可以在使用JavaScript或发布表单时查看内部​​内容。

答案 3 :(得分:0)

你可以尝试:

$('#SomeHiddenElement').attr("value", "some text");

这只是一个简单的jQuery解决方案,可以使用测试文本设置属性“value”。

编辑:

好吧,试试这个:

alert($("input[type='hidden']").length);

这是为了查看页面上有多少隐藏的输入元素。

答案 4 :(得分:0)

这两种方法都有效:

$('#SomeHiddenElement').attr("value", "some text");
$('#SomeHiddenElement').val("some text");

使用 Chrome开发者工具 Firebug

验证

答案 5 :(得分:0)

我知道已经很长时间了,但是我遇到了同样的问题,花了一些时间才发现页面上有多个(确切地说是具有相同的id =“”元素)似乎我的JS函数无法正常工作(我想这只是在修改第一个元素的值)。无论如何,这可以帮助某人节省一些调查时间:)