jQuery中两个按钮的相同功能

时间:2010-09-28 07:55:37

标签: javascript jquery buttonclick

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

$(function() {

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

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

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

4 个答案:

答案 0 :(得分:22)

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

$(function() { 

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

答案 1 :(得分:8)

有两种方法。

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

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

(2)给函数命名,而不是匿名:

function clickHandler() {
  // code here
}

$('#<%=btnUpdate.ClientID %>, #<%=btnAdd.ClientID %>').click(clickHandler);

答案 2 :(得分:6)

我们称之为 Refactoring ,它会帮助您一路走来,阅读更多相关信息,投资自己并购买精彩的一个Refactoring book

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

$(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);
}

答案 3 :(得分:0)

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

function validateFields(e) {
    code here;
}

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