有一个输入并使用自己的网格。并keypress
用于提交输入值,我想使用单击保存按钮并运行按键操作。
例如:
$('input[name="name"] , #save_button').live('keypress', function(event) {})
输入必须keypressed
并且#save_button
必须单击,我可以使用此方法运行一个函数以保存在数据库中吗?
对不起我的英语不好。
有一个输入并使用自己的网格。并keypress
用于提交输入值,我想使用单击保存按钮并运行按键操作。
例如:
$('input[name="name"] , #save_button').live('keypress', function(event) {})
输入必须keypressed
并且#save_button
必须单击,我可以使用此方法运行一个函数以保存在数据库中吗?
对不起我的英语不好。
不要使用.live
它已弃用的,.on
而是使用它。如果你这样做了
$('input[name="name"] , #save_button').on('keypress click', function() {
// do something
});
然后,如果用户单击输入,那么//do something
如果用户单击#save_button
. 如果我们希望用户通过点击来使用输入,那么点击输入不应该和#save_button
. 所以真的这些需要分成两个听众
$('input[name="name"]').on('keyup', function(e){
// do something for keyup (use keyup instead, its just better)
});
$('#save_button').on('click', function(){
// do something for click
});
如果你想让两个听众做同样的事情
function doSomething(){
// do something for both
}
$('input[name="name"]').on('keyup', doSomething);
$('#save_button').on('click', doSomething);
如果您真的需要听众“活着”,那么您可以从文档中委派
function doSomething(){
// do something for both
}
$(document).on('keyup', 'input[name="name"]', doSomething);
$(document).on('click', '#save_button', doSomething);
还假设您不希望所有按键事件采取行动,而只希望一些键(如 ENTER 键),您可能想看看这个
http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
使用命名函数并使用两个不同的事件。
function myFnc function(event) {}
var doc = $(document);
doc.on("keypress", 'input[name="name"]', myFnc);
doc.on("click", "#save_button", myFnc);
两种主要方法:
.live()
)都可以访问的外部范围,然后在这些语句中按名称附加它。.trigger()
方法从附加到“保存”按钮的匿名单击处理程序调用按键处理程序。在这两种情况下,您都需要采取措施确保event
传递给按键处理程序的格式正确,以便在从其他事件类型触发函数时避免错误。
我相信您只想在按键后保存数据
var isKeypressed = false;
$('input[name="name"]').on('keypress', function(event) {
isKeypressed =true;
});
$('#save_button').on('click', function(){
if(isKeypressed ){
saveData();
}else{
// your message
}
});
首先避免使用 live ,因为它已被弃用。如果您使用 jQuery 1.7 或更高版本,请使用on
. 例如:
var handler = function(e) {
//Handle the event
};
$(document).on( "keypress", 'input[name="name"], #save_button', handler);