我正在尝试在用户按Enter键时提交对话框表单。我的表单设置如下:
$("#band-dialog-form").dialog({
buttons : {
"Save" : function(){
$(this).dialog("close");
$("#editBandForm").submit();
},
Cancel : function() {
$(this).dialog("close");
}
},
close : function() {
}
});
当我添加了关键监听器时,我改为:
"Save" : function submitBand(){
$(this).dialog("close");
$("#editBandForm").submit();
},
但是我的关键监听器找不到函数submitBand。如果我尝试将该功能拉出对话框并进行操作:
"Save" : submitBand(),
在初始化时调用submitBand函数,在没有用户执行任何操作的情况下发送页面。在按钮对象中使用命名函数的propper方法是什么?
答案 0 :(得分:3)
您正在将执行submitBand
的结果分配给“保存”键,因为submitBand
(或“函数调用”构造)后面的括号表示“执行此函数对象并返回结果” 。尝试传递函数对象而不用函数调用构造:
"Save" : submitBand,
答案 1 :(得分:0)
你应该这样做:
var submitBand = function(){
$("#band-dialog-form").dialog("close");
$("#editBandForm").submit();
};
然后将对函数的引用传递给按钮:
$("#band-dialog-form").dialog({
buttons : {
"Save" :submitBand ,
"Cancel" : function() {
$(this).dialog("close");
}
},
close : function() {
}
});