beforesubmit似乎根本没有执行

时间:2011-09-01 14:39:16

标签: jquery forms validation

我试图让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;
            });

    });

根据我对firebug的测试,我看不出它实际调用函数的位置。我查看了文档和示例,但有些令人困惑。有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分: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;  
}