我正在尝试根据用户操作更改文本input
字段的值。我是这样做的:
document.getElementById(textFieldID).value = newValue;
它不是很有效 - 该字段中的原始文本仍保留在屏幕上,不变。但是,当我提交表单时,它的行为似乎确实正确地更改了值。 (并且调试alert
确认是的,我正在点击代码并传入正确的字段ID和文本值。)任何人都有任何见解?我需要做些什么才能重绘input
元素?
<script LANGUAGE="JavaScript" TYPE="text/javascript">
function changeText(changeSelector)
{
var myindex = document.getElementById(changeSelector+"Recent").selectedIndex;
var SelValue = document.getElementById(changeSelector+"Recent").options[myindex].value;
document.getElementById(changeSelector).value = SelValue;
document.getElementById("historicalText").value = SelValue;
document.getElementById("historicalTextSelect").value = changeSelector;
}
</script>
<input onChange="updateScrollingPreview1217(this); return true;" type="text" id="crawlMsg1217" name="crawlMsg1217" size="60" maxlength="1000" value="">
<select id="crawlMsg1217Recent" name="crawlMsg1217Recent" onchange="javascript:changeText('crawlMsg1217');">
[options go here]
</select>
那个“onChange”处理程序并不是正在搞砸的工作;无论有没有,我都会得到相同的行为。
<小时/> 编辑2:看起来问题是由“JSpell”引起的,这是我们的产品使用的第三方拼写检查程序。 (我被告知客户更喜欢将它用于浏览器中内置的拼写检查;如图所示。)我的测试机上看起来有点配置不当,所以我会尝试将其整理出来并祈祷它会产生问题走开。如果不......应该很有趣。
答案 0 :(得分:2)
我已经确认罪魁祸首确实是JSpell,而确切的故障点是这一行:
window.onload=jspellInit;
尽管上面的编辑2中提到过祈祷,但确保正确配置并没有使问题消失。这条线对于JSpell的功能是不可或缺的。我不知道JSpell是否总是以这种方式使用Javascript功能,或者是否存在一些完美的因素风暴导致它与我的页面争吵,但这确实是我问题的根源。
感谢所有试图提供帮助的人。在获得正确答案方面,这显然有点不可取,因为它是由一个看起来完全不相关的组件引起的,因此我没有提到,但你至少证实我是(在理由)做正确而不是简单的疯狂。
答案 1 :(得分:1)
页面上的任何其他元素具有与id相同的name属性是什么?
Internet Explorer 8及更高版本。在IE8中 模式,getElementById执行 ID区分大小写匹配 仅属性。在IE7模式和 以前的模式,这个方法执行一个 ID上的不区分大小写匹配 和NAME属性,可能 产生意外的结果。 - http://msdn.microsoft.com/en-us/library/ms536437%28VS.85%29.aspx
尝试提醒您返回的元素的nodeName和id,并确保它是您期望的输入。
答案 2 :(得分:1)
文档的id实际上是“textFieldID”还是“textFieldID”是一个包含要更改的文本输入ID的javascript变量?如果它不是变量,我相信你应该成功:
document.getElementById('textFieldID').value=newValue;
答案 3 :(得分:1)
如果没有上下文,很难调试它,因为你应该使用的代码很好。你可以通过以下方式确认你有正确的节点:
document.getElementById(textFieldID).style.border = "4px solid red";
答案 4 :(得分:0)
使用div元素而不是textfield。我有同样的问题,我用另一个脚本改变的文本域没有得到正确的值。你可以轻松地使用任何div元素,如textfield和一些CSS。你可以使用innerHTML从div获得值。