【问题标题】:Validating forms using XAJAX使用 XAJAX 验证表单
【发布时间】:2009-09-21 22:51:45
【问题描述】:

我正在使用 jQuery 来识别用户何时提交了表单。然后我使用 xajax 调用一个 php 方法来查询数据库并确保用户名和电子邮件地址未被使用。


  $('#newUserForm').submit(function() {
      var FormName = $(this).attr('name');
      xajax_validateEmailAddressAndUsername(xajax.getFormValues(FormName));
  });

然后在 validateEmailAddressAndUsername 中查询数据库并以这种方式验证。

我遇到的问题是 jquery 是异步的,我无法在提交表单之前添加具有正确 xajax 响应的脚本。我该如何解决这个问题?
我应该以不同的方式来做吗?

谢谢你

【问题讨论】:

    标签: jquery validation form-submit xajax


    【解决方案1】:

    我有时在使用#(obj).submit() 时会遇到麻烦。 .bind 似乎更可靠。 我认为你可以做这样的事情(未经测试):

    $('#newUserForm').bind('submit', function() {
         var FormName = $(this).attr('name');
         if (xajax_validateEmailAddressAndUsername(xajax.getFormValues(FormName))) {
              $(this).submit();
         }
         else {
             alert("Oh no!"); 
             return false;
         }
    }
    

    【讨论】:

    • 这段代码陷入了无限递归......但我认为你正在做一些事情。我的问题是:if 语句的 xajax 响应应该是什么才能评估为 TRUE?
    • 我明白为什么它会无限卡住,当我写那个回复时我很着急。 if 当前返回 true 并重新提交。尝试使用 $.post 而不是 $(this).submit() docs.jquery.com/Ajax/jQuery.post
    猜你喜欢
    • 2017-07-17
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    相关资源
    最近更新 更多