Javascript 脚本赢得';验证失败后不能停止

Javascript 脚本赢得';验证失败后不能停止,javascript,validation,Javascript,Validation,我正在对来自的输入框使用javascript验证,它在我的非ajax页面上运行良好,但当我使用ajax发布输入时,即使验证失败,脚本也不会停止运行。我尝试了一个例子,但当我尝试这个建议时,验证根本不起作用。在我的ajax脚本中,我只需在发布数据之前输入以下内容,就可以使用jquery验证完成所有工作: var frm = $(this).closest('form'); if($(frm).valid()){ 但是我真的想坚持使用这个验证库,所以我希望社区中更熟

我正在对来自的输入框使用javascript验证,它在我的非ajax页面上运行良好,但当我使用ajax发布输入时,即使验证失败,脚本也不会停止运行。我尝试了一个例子,但当我尝试这个建议时,验证根本不起作用。在我的ajax脚本中,我只需在发布数据之前输入以下内容,就可以使用jquery验证完成所有工作:

var frm = $(this).closest('form');        
        if($(frm).valid()){
但是我真的想坚持使用这个验证库,所以我希望社区中更熟悉javascript的人,甚至这个验证库都能帮助我找到一个等价的验证库,因为我在所有文档中都找不到任何东西,可以让你在移动我的ajax脚本之前测试验证是否失败前进

我的表格:

<form method="post" name="send_message_frm" id="send_message_frm">
        <div style="margin-top:20px;"></div>
        <fieldset>
          <div class="clear"></div>
          <div style="margin-top:20px;"></div>
          <label>Product Group Name:</label>
          <input name="desc" class="text-input medium3-input required" type="text" id="desc" value="">
          <div style="color:red;" id='send_message_frm_desc_errorloc' ></div>
          <div style="margin-top:20px;"></div>
        </fieldset>
        <input name="user" class="text-input medium3-input" type="hidden" id="user" value="<?php echo $myid ; ?>">
        <div style="margin-top:20px;"></div>
         <input type="submit" id="send-message" name="submit" value="Send" class='button'  />
        <div style="margin-top:20px;"></div>
      </form>  
<script  type="text/javascript">


    var frmvalidator = new Validator("send_message_frm");
    frmvalidator.EnableOnPageErrorDisplay();
    frmvalidator.EnableMsgsTogether();
    frmvalidator.addValidation("desc","alnum","Only numbers and letters are allowed");
    frmvalidator.addValidation("desc","req","Please enter a description");


</script> 

产品组名称:

在查看验证脚本之后,我发现(正如我所怀疑的那样)它将验证方法附加到表单的OnSubmit事件处理程序,这听起来是正确的

this.formobj.onsubmit = form_submit_handler;
但是。。。它还将自身附加到表单对象:

this.formobj.validatorobj = this;
其中有一个方法,您可以调用该方法来验证表单:

if (!this.runAddnlValidations())
要运行验证,您可以执行以下操作:

if(!document.forms[0].validatorobj.runAddnlValidations()) return;

好吧,我跳枪了。显然我不知道我在做什么。所以我试着把if(!form_submit_handler())返回;在我的ajax函数之前,但所做的只是导致函数失败。我尝试了几种变体,尝试使用if(!form_submit_handler())给出验证是否成功的布尔答案,但我完全迷路了。我对PHP没问题,但对javascript一无所知,所以你能进一步说明自己运行事件处理程序的意义吗?我要把什么放在哪里?我是否应该在验证后放置一些东西,看看它是否通过了?@DevNewb-很难知道哪里出了问题,但我还是用了不同的方法更新了我的答案。希望能成功。我在这里真的很努力,但我不太明白你的建议。所以我的验证运行正常。然后我有我的ajax脚本,无论验证是否失败,ajax脚本都会自动完成,即使验证失败,这就是问题所在。因此,我可以看到验证失败时弹出的错误消息,但信息仍然会提交到数据库。我需要一句话:如果(验证没有失败){};那么ajax将只在验证通过的情况下运行。你是说我可以做:如果(!document.forms[0].validatorobj.runAddnlValidations()){AJAX在这里运行}???
if(!document.forms[0].validatorobj.runAddnlValidations()) return;