javascript - onChange() 在服务器上不起作用,但在 jsfiddle 上工作正常?

标签 javascript html dependencies onchange jsfiddle

比较代码

jsfiddle

HTML

<select name="client_select" id="client_select">
<option value="Name not listed">Name not listed</option>
<option value="1">abc company</option>
</select>
<span id="client_add"><input type="text" name ="" value="field1"/></span>

Javascript

document.getElementById("client_select").onchange = 
function (e) {
if (this.value == 'Name not listed') {
    document.getElementById("client_add").style.display="";
    } else {
        document.getElementById("client_add").style.display="none";    
    }
};

我的网站

<script>
document.getElementById("client_select").onchange = 
function (e) {
    if (this.value == 'Name not listed') {
        document.getElementById("client_add").style.display="";
    } else {
document.getElementById("client_add").style.display="none";    
    }
};
</script>
<select name="client_select" id="client_select">
<option value="Name not listed">Name not listed</option>
    <option value="1">abc company</option>
</select>
<span id="client_add"><input type="text" name ="" value="field1"/></span>

解决方案:

在元素加载到客户端 DOM 后运行 javascript。

执行以下操作之一:

  • 在 html 元素之后加载 javascript

  • 使用 onLoad() 来包装脚本

  • 使用 jQuery 使用 $( document ).ready(function() { }

最佳答案

当您尝试使用该元素时,该元素不可用,因为它尚未加载到 DOM 中。

将脚本移到元素后面

<select name="client_select" id="client_select">
    <option value="Name not listed">Name not listed</option>
    <option value="1">abc company</option>
</select>
<span id="client_add"><input type="text" name ="" value="field1"/></span>

<script>
    document.getElementById("client_select").onchange = function(e) {
        if (this.value == 'Name not listed') {
            document.getElementById("client_add").style.display = "";
        } else {
            document.getElementById("client_add").style.display = "none";
        }
    };
</script>

我还鼓励使用 addEventListener

关于javascript - onChange() 在服务器上不起作用,但在 jsfiddle 上工作正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23501479/

相关文章:

java - Maven 暂时依赖未引入

c# - 我应该如何管理/声明开源 C# 项目之间的依赖关系?

python - 无法通过文本点击div元素

JavaScript 和 Jquery |共享脚本而不共享代码

javascript - 如何知道 JavaScript 中某个特定按钮何时被点击?

javascript - Textarea .val 通过 Ajax 发送数据时没有换行符

html - CSS 收缩元素不会导致跳转到下一行

html - 如何在将鼠标悬停在旁边的链接上时更改自定义图标图像?

java - 在我的类路径中找不到 MavenDependencyResolver。

javascript - 在代码中避免使用 if else