Javascript input.value更改未显示在浏览器中

Javascript input.value更改未显示在浏览器中,javascript,html,dom,Javascript,Html,Dom,以下内容不会呈现我在Chrome或Firefox中看到的任何更改: var field = document.getElementById( 'input-id' ), nodeName; if ( field !== null ) { nodeName = field.nodeName.toLowerCase(); if( nodeName === 'input' || nodeName === 'textarea' ) { field.value = 'h

以下内容不会呈现我在Chrome或Firefox中看到的任何更改:

var field = document.getElementById( 'input-id' ), nodeName;

if ( field !== null ) {
    nodeName = field.nodeName.toLowerCase();

    if( nodeName === 'input' || nodeName === 'textarea' ) {
        field.value = 'hello';
        console.log( field.value );
    }
}
目标如下:

<input id="input-id" name="input-name" type="text" required="required" placeholder="example">


但是控制台在这两种情况下都报告了正确的值。为什么?我使用的是经过验证的HTML5。脚本在结束
正文
标记之前。

您使用的是
而不是
编辑您的代码,伙计:

var field = document.getElementById( 'input-id' ).nodeName;
试试这个

 $(function() {
        var field = document.getElementById( 'input-id' ), nodeName;
        if ( field !== null ) {
            nodeName = field.nodeName.toLowerCase();

            if( nodeName === 'input' || nodeName === 'textarea' ) {
                field.value = 'hello';
                console.log( field.value );
            }
        }
     });
或者将脚本放在页面的末尾


原因它无法工作,因为您的脚本是在输入标记呈现之前执行的。因此,请将其放入end或on body load事件中,或者如果您使用的是jquery,则放入document ready函数中。您的脚本可能是在输入元素之前加载的


尝试将代码片段a放在页面底部

我认为您缺少添加
onload函数
。您可以像这样将其添加到

或者使用javascript

<script>
    window.onload = sumfunction; 
</script>

window.onload=sum函数;

下面是一个示例:

因为您已经声明了以下内容,所以可能不是脚本加载问题:

脚本位于结束正文标记之前

页面上必须有多个具有相同
id
的元素。查看源代码(Firefox上的Ctrl+U)并搜索输入id。确保页面上只有一个元素具有该id

您还可以通过在其他
控制台中添加以下行来记录正在更改的元素。log
调用:

console.log( field );

这应该会将整个元素记录到控制台,并帮助您进一步调试。

结果表明,在我使用OP.My console.log中的代码对其进行设置之后,我意外地将输入值覆盖到脚本中其他位置的空字符串中。在覆盖之前,我的console.log会捕获该值,这就是为什么它报告了正确的值,尽管在浏览器中得到了不同的结果。很抱歉没有发布整个脚本,但我试图提供一个简化的示例。

不,我正在设置一个名为nodeName的变量,然后再为其赋值。对我来说,可能是控制台未定义。注释该行并检查。代码似乎工作正常==这是问题吗?您可以更改
==
并查看吗?可能是分配和类型一起存在问题?@Sree控制台已定义。正如我所说,它报告了正确的值。问题在于,文本字段不能直观地反映更改,即使其
属性能够反映更改@Sahal这只是一个带有严格类型检查的比较运算符。它不会对输入的值产生任何影响。我的脚本在结束正文标记之前。我已经这样做了。它指向正确的元素。除了这个
id
@HughGuiney之外,没有其他东西可以让JS摆弄正在讨论的JS和html,这样我们就可以看到问题的实际效果。