当前位置: 首页 > 面试题库 >

如果ajax验证程序使用jquery返回true,则提交表单

焦正德
2023-03-14
问题内容

我不确定我要去哪里。这个想法是在提交表单之前,输入字段之一通过ajax发送到服务器端验证器。如果响应为1,则输入有效且应提交表单。如果响应为0,则不应提交该表单。问题是我不知道如何在ajax请求函数中设置一个变量,以防止表单被提交。这就是我所拥有的:

$("#form").submit(function() {
    var valid= false;
    var input = $("#input").val();
    $.ajax({
       type: "POST",
       url: "validator.php",
       data: "input=" + input,
       success: function(msg){
            valid = (msg == 1) ? true : false;
            if(!valid) {
                $("#valid_input").html("Please enter valid info");
            } else {
                $("#valid_input").html("");
            }
       }
     });
    return valid;
 });

问题答案:

问题在于$.ajax请求是异步的,需要一段时间才能完成。因此,该函数会继续执行并在成功执行事件之前返回false。

为了解决这个问题,您可以async: false为AJAX调用添加设置,但是这将暂停执行,直到AJAX调用返回。

另一个解决方案是创建一个隐藏输入,形式为valid

<input type="hidden" name="valid" value="false" />

然后在submit函数中但在ajax调用之前,创建对from的引用var $form = $(this)。然后,如果AJAX调用返回有效值,请更改此隐藏输入的值,然后再次提交表单:

$('input[name="valid"]').val('true');
$form.submit();

然后,在submit函数的最后,如果隐藏输入的值为true,则仅返回false:

if ($('input[name="valid"]').val() == 'false') {
    $.ajax({ ... }); // changes the value of the hidden input from false to true
    return false;
}


 类似资料:
  • 问题内容: JavaScript位: HTML位: 这就是我要使用的代码。我的想法是在使用Ajax发送表单之前,先验证所有输入。我现在已经尝试过许多版本,但是每次即使表单没有完全填写,最终还是要提交。我所有的输入都是“必需”类的。谁能看到我做错了吗? 另外,由于我的输入名称是用php生成的,因此我依赖于基于类的要求,因此我永远无法确定自己获得的名称或输入类型。 我在“页面”中显示/隐藏问题。 JS

  • 问题内容: 我使用bassistance.de的jQuery验证程序插件(1.11)并通过php提交。现在,我在javacript代码的末尾的提交处理程序中添加了一个ajax调用,但是该调用不起作用,firebug控制台也不存在。 案例1 如果我在网站的开头放置了ajax调用,它可以工作,但是不再可以看到验证器插件。 案例2 如果我将调用放入提交处理程序中,则该调用不存在,并且表单由php提交。

  • 本文向大家介绍jQuery EasyUI提交表单验证,包括了jQuery EasyUI提交表单验证的使用技巧和注意事项,需要的朋友参考一下 EasyUI的form表单里面的验证框,先讲解下validatebox类和相关的属性。 验证规则 验证规则是通过使用 required 和 validType 特性来定义的, 这里是已经实施的规则: email:匹配 email 正则表达式规则,系统提供的属性

  • 问题内容: 看起来这应该是jQuery内置的东西,不需要多行代码,但是我找不到“简单”的解决方案。说,我有一个HTML表单: 当有人更改选择字段时,我想使用ajax提交表单以更新数据库。我认为可以通过以下方式来执行以下操作,而无需手动创建值/属性,只需将它们全部发送即可,例如: 我想念什么? 问题答案: 这就是最终的工作。

  • 问题内容: 我试图使用此示例使用AJAX提交HTML表单。 我的HTML代码: 我的剧本: 这是行不通的,我什至没有收到警告消息,提交时我不想重定向到另一个页面,我只想显示警告消息。 有简单的方法吗? PS:我有几个领域,我仅举两个例子。 问题答案: AJAX快速描述 AJAX只是异步JSON或XML(在大多数新情况下为JSON)。因为我们正在执行ASYNC任务,所以我们很可能会为我们的用户提供更

  • 问题内容: 我阅读了有关jQuery验证程序的答复,其中概述了一种根据数据库中的值检查用户名的方法。 香港专业教育学院试图实现此方法,但无论从PHP文件返回什么,我总是得到消息,用户名已被使用。 这是自定义方法… 这是验证代码… 有没有一种特定的方式我应该从php返回消息。 谢谢 一个 问题答案: 您正在执行一个AJAX请求,因此:自定义验证器返回true或false时,验证已经完成。 您将需要使