2011-09-01 121 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

相关问题