我无法从我的javascript函数中获取返回代码

时间:2012-08-21 16:10:43

标签: javascript jquery

我将以下内容分配给模态上的按钮。当用户点击时 在按钮上它调用submitHandler。

   var btn = {
        'Submit & Close': function (win) {
            var rc = submitHandler(oLink.$link, $modal);
            $('#createLink').prop('disabled', false);
        },
        'Close': function (win) {
            $modal.closeModal();
            $('#createLink').prop('disabled', false);
        }
    }

我的submitHandler看起来像这样:

    function submitHandler($link, $modal) {

  if (!$form.valid || $form.valid()) {
        $submitBt.disableBt();
        $modal.removeBlockMessages()
            .blockMessage('Contacting Server, please wait ... ', { type: 'loading' });
        $.ajax({
            url: oSubmit.href,
            dataType: 'json',
            type: 'POST',
            data: $form.serializeArray()
        })
        .done(function (json, textStatus, XMLHttpRequest) {
            json = json || {};
            if (json.success) {
                submitSuccessModal(oSubmit, json);
                return true;
            } else {
                submitFailModal(oSubmit, json);
                return false;
            }
            return false;
        })

    }

当我检查调试器时,submitHandler运行但是当我查看值时 这是未定义的。

有什么东西显而易见我错过了。我根本无法让rc平等 除了“未定义”之外的任何东西。

更新

我在代码的实际部分添加了。我想知道是否可能是ajax调用引起了这个?请注意,我可以使用调试器跟随代码返回true;线。

2 个答案:

答案 0 :(得分:5)

语句以分号结束,而不是冒号。

function submitHandler($link, $modal) {
   return true;
}          // ↑

答案 1 :(得分:2)

检查处理程序中return语句末尾的分号。

function submitHandler($link, $modal) {
   return true;
}