【问题标题】:jQuery Halt Form SubmitjQuery 停止表单提交
【发布时间】:2011-08-31 12:36:56
【问题描述】:

我刚刚整理了一个漂亮的表单,花了我几个小时,并带有一些漂亮的 jQuery focusout 验证。 focusout 属性附加到输入字段 onload。然后我通过触发焦点事件 onsubmit 重新使用我的验证功能,但我不知道如果我的任何验证功能失败,如何禁用表单提交。完整示例here (jsfiddle)

缩减示例:

addLoadEvent(AttachVal);

函数 AttachVal(){

  $('input[name="FirstName"]').focusout(NameTest);
  $('input[name="LastName"]').focusout(NameTest);
  $('form[name="Register"]').submit(SubmitRegForm);

}

函数 SubmitRegForm(){

  $('input[name="FirstName"]').trigger('focusout');
  $('input[name="LastName"]').trigger('focusout');
  alert ("Submitting");       

返回 假的;
}

验证函数:

function NameTest(){

var result = true;          
var EnteredValue = $(this).val();
var alphaExp = /^[a-zA-Z ]+$/;

    if (!(EnteredValue.match(alphaExp)))
    {
        var result = "Invalid"; 
    }   

    if (result !== true)
    {
        $(this).parent().next().children('span.ErrorDescript').text(result);
    }
    else
    {           
        $(this).parent().next().children('span.ErrorDescript').text("");        
    }

}

我尝试在 SubmitRegForm 函数中附加一个变量,如下所示:

var FNStat = $('input[name="FirstName"]').trigger('focusout');

打算检查它们并在它们都返回true时提交,但这只是返回一个对象。是否可以从该函数中获取响应文本?...也许?或者是否有另一种方法可以强制停止当前在我的个人验证函数中运行的提交事件?

一如既往,非常感谢任何建议。

【问题讨论】:

标签: jquery validation forms submit halt


【解决方案1】:

【讨论】:

    【解决方案2】:

    捕捉表单提交的正确方法是这样的:

    $('#form').submit(function(e){
        // Unfocus and validation logic here.
        e.preventDefault();
    });
    

    e.preventDefault() 将阻止表单提交。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      相关资源
      最近更新 更多