Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onchange事件在页面加载开始时不起作用_Javascript_Jquery_Html_Frontend - Fatal编程技术网

Javascript onchange事件在页面加载开始时不起作用

Javascript onchange事件在页面加载开始时不起作用,javascript,jquery,html,frontend,Javascript,Jquery,Html,Frontend,我有一个web应用程序,它有一个onchange事件,用于将多个select选项加载到一个文本框中,文本框之间用“,”分隔,并将最后一个“,”切片 很好用, 我还有一个功能用于填写表格。当我尝试加载表单时,仅选择选项正在更新,期望onchange函数从选择中获取数据,并在文本框中具有一些值。 但可悲的是,它不工作,但只有在新选项被选中或删除并添加回来后才能工作 用于向带有onchange事件的文本框添加多个选择数据的函数: // arguments: reference to select li

我有一个web应用程序,它有一个onchange事件,用于将多个select选项加载到一个文本框中,文本框之间用“,”分隔,并将最后一个“,”切片 很好用, 我还有一个功能用于填写表格。当我尝试加载表单时,仅选择选项正在更新,期望onchange函数从选择中获取数据,并在文本框中具有一些值。 但可悲的是,它不工作,但只有在新选项被选中或删除并添加回来后才能工作

用于向带有onchange事件的文本框添加多个选择数据的函数:

// arguments: reference to select list, callback function (optional)
function getSelectedOptions(sel,fn) {
    var opts = [], opt;
    // loop through options in select list
    for (var i=0, len=sel.options.length; i<len; i++) {
        opt = sel.options[i];
        // check if selected
        if ( opt.selected ) {
            // add to array of option elements to return from this function
            opts.push(opt);
            // invoke optional callback function if provided
            if (fn) {
              fn(opt);
            }}}
    // return array containing references to selected option elements
    return opts;
}

// example callback function (selected options passed one by one)
function callback(opt) {
    // display in textarea for this example
    var display = document.getElementById('display');
    display.innerHTML += opt.value + ',';
}

// anonymous function onchange for select list with id lstBox2
document.getElementById('sel1').onchange = function(e) {
    // get reference to display textareaa
    var display = document.getElementById('display');
    display.innerHTML = ''; // reset
    // callback fn handles selected options
    getSelectedOptions(this, callback);
    // remove ', ' at end of string
    var str = display.innerHTML.slice(0, -1);
    display.innerHTML = str;
};
//参数:对选择列表的引用,回调函数(可选)
功能getSelectedOptions(sel,fn){
var opts=[],opt;
//循环选择列表中的选项

对于(var i=0,len=sel.options.length;i尝试将document.getElementById('sel1').onchange代码移动到$(document).ready(…)块中。如果没有完整的页面示例,很难判断,但有一种可能性是,在尝试添加onchange处理程序时,“sel1”还不是DOM的一部分。

尝试使用

$('body').on('change', '#sel1', function(e) {

});

如果元素是在加载后添加的。

Onchange在您更改绑定到的元素时起作用。您应该对onload执行相同的操作。我尝试过对onload执行相同的操作,但不起作用,相同的操作尝试将其保留在document中。ready但问题仍然在于load iOS与document.ready相同。Plain js vs jqueryI尝试将其置于ready中并将其加载不起作用!!!那么,你能提供一个(片段)让我们重现问题并尝试更好地帮助吗?我添加了它,但没有区别,但与以前一样。
$('body').on('change', '#sel1', function(e) {

});