我想在我的脚本中摆脱 jQuery。
脚本的本质:
- 通过ajax加载表单
- 在表单更改上挂一个处理程序
无法正确挂起表单更改事件的处理程序。在 vanilla JS 上,据我所知,你不能把它挂在整个表单上,它必须分别在每个元素上完成。
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.onload = function() {
if (request.status == 200) {
var resp = request.responseText;
container.innerHTML = resp;
var form = container.getElementsByTagName('form')[0];
if (form !== undefined) {
var inputs = form.querySelectorAll('input, select');
for (var i = 0; i < inputs.length; i++) {
inputs[i].addEventListener('change', calculate(calcID, url));
}
}
}
};
request.send();
function calculate(calcID, url) {}
问题:加载表单后,处理程序立即被调用,次数与表单中的输入一样多。事件未挂起(当输入值改变时,不调用处理程序)
这个
并且有一个直接的函数调用。
必要的:
或者