我正在尝试根据用户操作更改文本 input
字段的值。我是这样做的:
document.getElementById(textFieldID).value = newValue;
它不太有效——字段中的原始文本保留在屏幕上,没有变化。但是,当我提交表单时,它的行为就像确实正确更改了值一样。 (并且调试 alert
确认是的,我正在点击那部分代码并传入正确的字段 ID 和文本值。)有人有任何见解吗?我需要做些什么来重绘 input
元素吗?
编辑:根据 Jeff B 的要求,并且根据这似乎让每个人都感到难过的事实,这里有一些相关的代码:
<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”引起的。 (我听说客户更喜欢使用它而不是内置于浏览器中的拼写检查;看图。)它在我的测试机器上似乎配置有轻微错误,所以我将尝试纠正它并祈祷它会产生问题离开。如果没有……应该很有趣。
编辑 3: 是的。 Fscking JSpell。为了后代,刚刚发布了一个完整的答案,明天我会在允许的时候接受它。感谢所有试图提供帮助的人;到处都是 +1,希望我能提供更多。
最佳答案
我已经确认罪魁祸首确实是 JSpell,准确的问题点是这一行:
window.onload=jspellInit;
尽管在上面的编辑 2 中提到了祈祷,但确保它配置正确并没有使问题消失。而这一行对于 JSpell 的功能是必不可少的。我不知道 JSpell 是否总是以这种方式管理 Javascript 功能,或者是否存在某种完美的因素 Storm 导致它与我的页面发生冲突,但这确实是我问题的根源。
感谢所有试图提供帮助的人。就获得正确答案而言,这显然有点双赢,因为它是由一个看似完全不相关的组件引起的,因此我没有提到,但你至少确认我是(在理论)做正确的事,而不是简单地发疯。
关于javascript - 使用 Javascript 更改输入文本值不会更改显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1835770/