12

我有两个按钮:btnAddbtnUpdate。我为按钮编写了一个 jquery 函数btnUpdate来验证网页中的某些字段,例如:

$(function() {

  $('#<%=btnUpdate.ClientID %>').click(function() {
    code here
    });
});

单击时我想做同样的事情btnAdd。所以我必须再次为 btnAdd 编写相同的函数。还有其他方法可以避免这种情况吗?

(如果我编写一个javascript函数并在两个按钮的按钮单击事件中调用相同的函数,那很好。但是有没有使用jQuery的方法?)

4

4 回答 4

23

只需选择两个按钮,用逗号分隔: ("#add, #update").click... 在您的代码中看起来像这样:

$(function() { 

  $('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(function() { 
    code here 
    }); 
}); 
于 2010-09-28T08:00:59.037 回答
8

有两种方法。

(1) 一次选择两个元素并将事件处理程序应用于它们:

$(function() {
    $('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(function() {
        code here
    });
});

(2) 给函数起一个名字,而不是匿名:

function clickHandler() {
  // code here
}

$('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(clickHandler);
于 2010-09-28T08:00:11.047 回答
7

我们称之为重构,它会一路帮助你,阅读更多内容,投资于自己,并购买一本非常棒的重构书

在你的情况下,你应该这样做:

$(function() {

  $('#<%=btnUpdate.ClientID %>').click(function() {
        validate($this);
    });
  $('#<%=btnAdd.ClientID %>').click(function() {
        validate($this);
    });    

});

function validate(myButton)
{
    // code here
}

正如你应该经常做的那样。

但是作为 jQuery,您可以使用具有多个输入的选择器,因此您需要做的就是:

$('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(function() { 
    validate($this);
}
于 2010-09-28T08:02:27.490 回答
0

jQuery 是一个 JavaScript 框架,而不是另一种语言,所以你也可以在这里编写一个 JavaScript 函数。

function validateFields(e) {
    code here;
}

$(function() {
  $('#<%=btnUpdate.ClientID %>').click(validateFields);
  $('#<%=btnAdd.ClientID %>').click(validateFields);
});
于 2010-09-28T08:02:03.083 回答