从 javascript 触发表单元素的 onchange 函数非常简单:
element.onchange();
但假设 onchange 是这样的:
<input id=foo type=checkbox onChange="function1(argA, argB); function2(argC);">
是否可以仅触发“function2(argC)”部分(如果存在)?
一种粗略的方法可能是以某种方式获取 onchange 函数作为文本,检查它以查看 function2 是否在那里,如果是,则将“function2(argC)”提供给 eval。
这段代码:
var thatInput = document.getelementbyid('foo');
alert(thatInput.onchange);
产量
function onchange(event) {
function1(argA, argB); function2(argC););
}
在警报框中,但我不知道如何将其作为字符串进行操作。 thatInput.onchange 有一个名称属性,即“onchange”;它的长度为 1。这些似乎都没用。
最佳答案
您可以将这两个函数调用包装在父函数中,并使用可选参数来确定是否应调用 function2
:
function handleChange(useFunction1, useFunction2) {
if ( useFunction1 ) {
function1(argA, argB);
}
if ( useFunction2 ) {
function2(argC);
}
}
// Calls function1 without calling function2
<input id=foo type=checkbox onChange="handleChange(true, false);">
// Calls function2 without calling function1
<input id=foo type=checkbox onChange="handleChange(false, true);">
// Calls both functions
<input id=foo type=checkbox onChange="handleChange(true, true);">
或者,如果您希望默认调用这两个函数,除非您另外手动指定:
function handleChange(useFunction1, useFunction2) {
if ( useFunction1 === true || useFunction1 === undefined ) {
function1(argA, argB);
}
if ( useFunction2 === true || useFunction2 === undefined ) {
function2(argC);
}
}
// Calls both functions by default
<input id=foo type=checkbox onChange="handleChange();">
关于javascript - 如何从其他代码触发表单元素的 onchange 的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35474509/