呼叫按钮功能输入

时间:2011-09-19 14:23:07

标签: javascript jquery jquery-ui-dialog

我正在尝试在用户按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方法是什么?

2 个答案:

答案 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() {

        }
    });