我在设置隐藏输入元素的值时遇到问题。我尝试过使用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";
答案 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函数无法正常工作(我想这只是在修改第一个元素的值)。无论如何,这可以帮助某人节省一些调查时间:)