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