我想在javascript中添加多个函数onchange到同一个输入。 有点像这样:
this.el = document.getElementById(this.docID);
if(x==y)
{
this.el.onchange += function(){ // some code }
}
if(a==b)
{
this.el.onchange += function(){ // some code }
}
答案 0 :(得分:2)
如果你想链接onchange函数,你可以这样做:
this.el = document.getElementById(this.docID);
if(x==y) {
this.el.onchange = function(){ // some code }
}
if(a==b) {
var oldOnChange = this.el.onchange;
this.el.onchange = function(){
// execute previous onchange function
if(oldOnChange) oldOnChange();
// some code
}
}
像这样你也可以决定是否要在新的onchange代码之前或之后执行旧的onchange函数。
答案 1 :(得分:2)
您应该考虑使用addEventListener和其他DOM2方法,而不是使用onchange属性。有一些跨浏览器问题出现(即使使用onchange属性),所以我的建议是使用库,例如jQuery change事件观察者。
使用jQuery,您的代码示例如下所示:
this.el = document.getElementById(this.docID);
if(x==y) {
$(this.el).change(function() { /* some code */ });
}
if(a==b) {
$(this.el).change(function() { /* some code */ });
}
答案 2 :(得分:0)
你不能一起添加2个功能,代码错误。只有1个onchange函数。
所以你可以这样做:
this.el.onchange = function() {
if(x==y) {
// some code
} else if(a==b) {
// some other code
}
}
答案 3 :(得分:-1)
this.el.onchange调用一个main函数后调用你做比较并调用其他函数
this.el = document.getElementById(this.docID);
this.el.onchange += functionx();
functionx() {
if(x==y) {
this.el.onchange += functionY(){ // some code }
} if(a==b) {
this.el.onchange += functionZ(){ // some code }
}
}