我有两个按钮:btnAdd
和btnUpdate
。我为按钮btnUpdate
编写了一个jquery函数来验证网页中的某些字段,如:
$(function() {
$('#<%=btnUpdate.ClientID %>').click(function() {
code here
});
});
我想在点击btnAdd
时做同样的事情。所以我必须为btnAdd再次编写相同的函数。还有其他方法可以避免这种情况吗?
(如果我编写一个javascript函数并在两个按钮的按钮单击事件中调用相同的函数,那很好。但有没有办法使用jQuery?)
答案 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);
});