简体   繁体   English

显示未定义的onchange事件函数(Javascript-HTML-DOM)

[英]onchange event function showing not defined (Javascript-HTML-DOM)

I am using Javascript HTML DOM Events,When I run my code in the browser, it says statusHtmlFromObject is not defined. 我正在使用Javascript HTML DOM事件,当我在浏览器中运行代码时,它说statusHtmlFromObject未定义。 Can someone please tell what is the correct way of writing it inside html tag like I'm trying to do. 有人可以告诉我在html标签中写它的正确方法是什么,就像我想做的那样。 I've attached the script.js file. 我已经附加了script.js文件。

 File: Script.js
      function statusHtmlFromObject() {
      var x = document.getElementById("mySelect").value;
      console.log('This is your selection', x);
    }
     var html = '';
     html +='<select id="mySelect" onchange="statusHtmlFromObject()">';
       html +='<option value="Order placed">Order placed';
       html +='<option value="Preparing">Preparing...';
       html +='<option value="Packaging">Packaging...';
       html +='<option value="Food is ready">Food is ready';
        html +='</select>';
      return html;

 const container = document.getElementById('container'); function statusHtmlFromObject() { var x = document.getElementById("mySelect").value; console.log('This is your selection', x); } var html = ''; html +='<select id="mySelect" onchange="statusHtmlFromObject()">'; html +='<option value="Order placed">Order placed'; html +='<option value="Preparing">Preparing...'; html +='<option value="Packaging">Packaging...'; html +='<option value="Food is ready">Food is ready'; html +='</select>'; container.innerHTML += html; 
 <div id="container"></div> <script src=""><script/> 

This is working. 可以了 You should append your html to a div tag or any other html element in general. 通常,您应该将html附加到div标签或任何其他html元素。

Your statusHtmlFromObject function is declared inside another function. 您的statusHtmlFromObject函数在另一个函数中声明。 It must be global accessible for onchange event. 对于onchange事件,它必须是全局可访问的。 This is reason of error. 这是错误的原因。

You need to declare it outside or just define it globally: 您需要在外部声明它或只在全局定义它:

var statusHtmlFromObject  = function (){
...
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM