2011-09-01 118 views
0

我試圖讓beforesubmit選項工作,所以我可以驗證窗體提交之前。我肯定錯過了什麼。這運行良好,但它完全忽略了該功能。根據我測試的螢火beforesubmit似乎並沒有執行任何

$(document).ready(function() { 
      var options = { 
        beforesubmit: function() { 
          var subjectTxtVal = $('input[name=subjectTxt]').fieldValue(); 
          var messageTxtVal = $('input[name=messageTxt]').fieldValue(); 

          if (!subjectTxtVal[0] || !messageTxtVal[0]) { 
           alert('Please enter a value for subject and message'); 
           return false; 
          } 
        }, 
        target: '#results', 
        success: showResponse 
      }; 
      $('#results').dialog({autoOpen: false, modal: true, buttons: { 
          Ok: function() { 
            $(this).dialog("close"); 
          } 
        }}); 
      $('#resemail').submit(function() { 
        $(this).ajaxSubmit(options); 
        $('#results').dialog('open'); 
        return false; 
      }); 

    }); 

我看不出它是有史以來實際調用該函數。我查看了文檔和示例,但它有點令人困惑。有任何想法嗎?

謝謝。

+0

很難讓我們來幫助你,因爲你似乎在使用插件?我們無法知道ajaxSubmit函數中發生了什麼。你能發佈與ajaxSubmit方法相關的代碼嗎? –

+0

問題的插件是jQuery表單插件(jquery.malsup.com/form/)。我不確定我關注你的要求。 ajaxSubmit函數在我發佈的代碼中。我唯一遺漏的是節目迴應功能。 'function showResponse(responseText,statusText,xhr,$ form){('#coursemail')。clearForm(); }' – oljones

回答

1

爲什麼不在提交之前自己驗證它,而不是依賴插件?

$(document).ready(function() { 
      var options = { 
        target: '#results', 
        success: showResponse 
      }; 
      $('#results').dialog({autoOpen: false, modal: true, buttons: { 
          Ok: function() { 
            $(this).dialog("close"); 
          } 
        }}); 
      $('#resemail').submit(function() { 
        if(validate_fields()) 
        { 
         $(this).ajaxSubmit(options); 
        } 
        else 
         return false;              
      }); 

}); 

function validate_fields() 
{ 
    var subjectTxtVal = $('input[name=subjectTxt]').fieldValue(); 
    var messageTxtVal = $('input[name=messageTxt]').fieldValue(); 

    if (!subjectTxtVal[0] || !messageTxtVal[0]) { 
     alert('Please enter a value for subject and message'); 
     return false; 
    } 
    return true; 
} 
+0

使用before submit選項看起來是驗證表單的最簡單方法。該文檔明確指出:「'beforeSubmit'回調函數可以作爲運行預提交邏輯或驗證表單數據的鉤子提供。」所以它似乎是最好的選擇。我會看看你的例子。如果它完成了所有重要的工作。謝謝。 – oljones

相關問題