我在设置隐藏输入元素的值时遇到问题。我已经尝试过使用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";
因为我不相信firebug在更新它的DOM表示时有问题,并且你的代码在孤立的情况下运行良好,并且你没有文本输入的问题,而且我自己从未遇到过更新隐藏输入的问题,我会建议其他东西对隐藏的输入采取行动来阻止你正在做的事情。
我建议您创建一个剥离了所有内容的测试页面,除了您在此处提供的内容,然后逐步添加功能以实现真实页面的状态。在某些时候它会破裂,你至少会知道问题所在。
伙计们,我很抱歉......问题出在Firebug和我的邮政处理代码的组合......我已修好了...
故事的道德:仔细检查代码,不要盲目相信Firebug。
谢谢你的麻烦!
你的代码很好。
<!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或发布表单时查看内部的内容。
你能试一下吗:
$('#SomeHiddenElement').attr("value", "some text");
这只是一个简单的jQuery解决方案,用测试文本设置属性“value”。
编辑:
好吧,试试这个:
alert($("input[type='hidden']").length);
这是为了查看页面上有多少隐藏的输入元素。
这两个都有效:
$('#SomeHiddenElement').attr("value", "some text");
$('#SomeHiddenElement').val("some text");
使用Chrome开发者工具和Firebug进行验证
我知道这已经很长时间了,但是我遇到了同样的问题,我花了一些时间才发现我在页面上有多个元素(确切地说)有相同的id =“”而且它似乎是我的JS函数不起作用(我猜它只修改了第一个元素的值)。无论如何,这可能有助于某人节省一些时间调查:)