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

Sam*_*tar 0 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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的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;
        })

    }
Run Code Online (Sandbox Code Playgroud)

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

是否有一些我不知道的明显事物.除了"未定义"之外,我根本无法让rc等于任何其他东西.

更新:

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

Mat*_*all 5

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

function submitHandler($link, $modal) {
   return true;
}          // ?
Run Code Online (Sandbox Code Playgroud)