如何使用 JQuery 和 Ajax 验证表单字段并将表单数据发布到服务器?

2024-04-18

我正在尝试验证表单字段,例如姓名(不得为空)、Email_id(必须有效)、手机(必须有效)。填写所有信息后,我必须将此信息发送到服务器,并将响应重定向到不同的页面。这里什么都不起作用,

我的表单.html

<form class="form-horizontal" id="scheduleLaterForm" name="scheduleLaterForm">
    <div class="col-lg-8">      
        <div class="fieldgroup">
            <label class="col-lg-3 control-label" for="userName">Name:<font
                style="color: red;">*</font></label>
            <div class="col-lg-9">
                <input style=" height: 30px;" class="form-control" id="userName" name="userName"
                    placeholder="Full Name" value="" type="text" required>
            </div>
        </div>

        <div class="fieldgroup">
            <label for="email" class="col-lg-3 control-label">Email:<font
                style="color: red;">*</font></label>
            <div class="col-lg-9">
                <input style="height: 30px;" class="form-control" name="email"
                    id="email" placeholder="[email protected] /cdn-cgi/l/email-protection" value=""
                    type="text" required>
            </div>
        </div>

        <div class="fieldgroup">
            <label for="userContactNumber" class="col-lg-3 control-label">Mobile:<font
                style="color: red;">*</font></label>
            <div class="col-lg-9">
                <input style="height: 30px; width:100%;" class="form-control" id="userContactNumber"
                    name="userContactNumber" placeholder="Mobile Number"
                    onkeypress="enableKeys(event);" maxlength="10" type="text" required>
            </div>
        </div>

        <div class="fieldgroup">
            <label class="col-lg-3 control-label"></label>
                <div class="col-lg-7">
                    <input type="submit" value="Register" id="btnBooking" class="submit">
                </div>
        </div>
    </div>                                  
</form>

用于验证表单和发送数据的脚本

 <script>
    $(document).ready(function(){
        $("#scheduleLaterForm").validate({
            rules: {
                userName: "required",                           
                email: {
                    required: true,
                    email: true
                },                                              
                userContactNumber: "required"                       
            },
            messages: {
                userName: "Please enter your Name",
                userContactNumber: "Please enter your Mobile number",                           
                email: "Please enter a valid email address",                                           
            },
            submitHandler: function(form) {
                // get values from textboxs 
                var uName = $('#userName').val();
                var mailId = $('#addressemailId').val();
                var mobNum = $('#userContactNumber').val();

                $.ajax({
                    url:"http://localhost/services/bookService4Homes.php",
                    type:"GET",
                    dataType:"json",
                    data:{type:"booking",Name:uName, Email:mailId, Mob_Num:mobNum },
                    //type: should be same in server code, otherwise code will not run
                    ContentType:"application/json",
                    success: function(response){
                         alert("success");
                        //alert(JSON.stringify(response));
                    },
                    error: function(err){
                         alert("fail");
                        //alert(JSON.stringify(err));
                    }
                });
                return false; // block regular submit
            }
        });
    });
</script> 

Php code

<?php
header('Access-Control-Allow-Origin: *');//Should work in Cross Domaim ajax Calling request
mysql_connect("localhost","root","root");
mysql_select_db("service4homes");
if(isset($_GET['type']))
{
    if($_GET['type']=="booking"){
        $name = $_GET ['Name'];
        $mobile = $_GET ['Mob_Num'];
        $mail = $_GET ['Email'];    

        $query1 = "insert into customer(cust_name, cust_mobile, cust_email) values('$name','$mobile','$mail')";
        $result1=mysql_query($query1);
    }
}
else{
    echo "Invalid format";
}
?>

  • 您不需要外部click处理程序,因为插件会自动捕获click (of a type="submit")并阻止提交。

  • 你需要一个input or button在你的form那是type="submit",否则插件根本不会被触发。

  • 你不能有一个外部.ajax当你有功能时form.submitsubmitHandler你的.validate()方法。这意味着插件正在尝试提交表单,而您的点击处理程序正在尝试使用ajax。他们不能同时工作。根据文档,任何ajax属于内submitHandler,它是“验证后通过 Ajax 提交表单的正确位置” http://jqueryvalidation.org/validate/#submithandler.

  • 您不需要检查表单有效性,因为当您使用内置的submitHandler,这也是自动完成的。

  • jQuery4U 代码只不过是复杂的垃圾;一切都可以大大简化。除了给那些寻求指导的人带来更多困惑之外,它没有任何有用的目的。它来自 Sam Deering 的一个流行但解释不清的在线演示/教程,该演示/教程与许多地方都有链接。

    $(document).ready(function(){
    
        $("#register-form").validate({
            rules: {
                userName: "required",                           
                email: {
                    required: true,
                    email: true
                },                                              
                userContactNumber: "required"                       
            },
            messages: {
                userName: "Please enter your Name",
                userContactNumber: "Please enter your Mobile number",                           
                email: "Please enter a valid email address",                                           
            },
            submitHandler: function(form) {
    
                // get values from textboxs 
                var uName = $('#userName').val();
                var mailId = $('#addressemailId').val();
                var mobNum = $('#userContactNumber').val();
    
                $.ajax({
                    url:"http://192.168.1.11/services/bookService4Homes.php",
                    type:"POST",
                    dataType:"json",
                    data:{type:"booking",Name:uName, Email:mailId, Mob_Num:mobNum },
                    //type: should be same in server code, otherwise code will not run
                    ContentType:"application/json",
                    success: function(response){
                        //alert(JSON.stringify(response));
                    },
                    error: function(err){
                        //alert(JSON.stringify(err));
                    }
                });
                return false; // block regular submit
            }
        });
    
    });
    

DEMO: http://jsfiddle.net/mh6cvf2u/ http://jsfiddle.net/mh6cvf2u/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JQuery 和 Ajax 验证表单字段并将表单数据发布到服务器? 的相关文章

随机推荐

  • Django 和通用访问卡 (CAC)

    计划用 Python 编写 Web 应用程序 Django 是框架的领先竞争者 一项要求是 CAC 访问 无需手动输入用户名和密码 据我所知 CAC 访问不是 Django 包含的 电池 的一部分 作为一个整体框架 不一定是坏属性 Djan
  • 具有内边缘的 SpriteKit SKPhysicsBody

    我创建了一个SKSpriteNode比如说Map它有一个我定义的边缘路径 一些简单的多边形形状 我想弄清楚的是如何添加几个other将充当内部边缘的边缘路径Map 就好像整个 地图 实际上确实有holes 某种内部边界形状可以与Map整体
  • 计算结构向量中的匹配项

    我有一个问题 要求我计算该数组中使用以下任一方法的实例的数量std count or std find 我知道如何使用标准数据 参见底部代码 类型来执行此操作 但不知道如何使用NameContainer我正在使用的 Type struct
  • Firebase 更新 apple-app-site-association

    我正在实现动态链接 一切正常 除了在我的项目设置中我更改了 团队 ID 又名 AppStore 应用程序前缀 如果我访问myproject page link apple app site association它仍然给我旧的团队 ID 我
  • 如果我在实现工厂模式时使用抽象类而不是接口。它仍然是工厂模式吗?

    例如 http www tutorialspoint com design pattern factory pattern htm http www tutorialspoint com design pattern factory pat
  • MapReduce 排序和洗牌如何工作?

    我正在使用 yelps MRJob 库来实现映射缩减功能 我知道 MapReduce 有一个内部排序和洗牌算法 它根据键对值进行排序 所以如果我在地图阶段后得到以下结果 1 24 4 25 3 26 我知道排序和洗牌阶段将产生以下输出 1
  • 更新到 WorkManager 1.0.0-alpha09 后出现编译错误

    我正在尝试使用架构组件中的 WorkManager 我已将compileSdkVersion和targetSdkVersion从27升级到28 gradle同步已成功完成 但构建时错误不断出现 由于 android support desi
  • 加载表单演示文稿的模态视图的自定义尺寸

    我正在尝试在 iPad 中加载带有表单演示文稿的 UIViewController 问题是这个新视图的大小 我将大小值放在 IBuilder 中 但模式视图采用固定值 我也尝试在prepareForSegue中这样做 HelpViewCon
  • NSOpenPanel 的 setDirectoryURL 不起作用

    我正在尝试使用 NSOpenPanel 的新方法并设置其初始目录 问题是它只在第一次起作用 之后它只是 记住 最后选择的文件夹 这是我不想要的 我必须使用已折旧的 runModalForDirectory file 才能使其工作 它不太理想
  • 运行单元测试时如何禁用 PostSharp?

    我希望我的 nunit 测试不应用任何 PostSharp 方面 这样我就可以单独测试我的方法 这可以在测试夹具设置中以某种方式完成 还是只能在每个项目级别上完成 您可以在测试版本上设置 SkipPostSharp 标志 这样它就不会首先编
  • R将列表逐行写入CSV

    我在 R 中有以下代码 library party dat read csv data csv header TRUE train lt dat 1 1000 test lt dat 1000 1200 output tree lt cfo
  • 如何在 Qt 中重写 QApplication::notify

    我正在尝试处理 Qt 应用程序中的异常 我浏览了几篇文章 其中指出了重写 QApplication notify 方法以在 Qt 中以有效的方式处理异常 我不确定应该在哪里添加这个重写方法 是mainwindow h还是main cpp 我
  • 传单 GeoJSON 点*后面*多边形

    我有两个传单 geojson 层 它们都有点和多边形特征 我希望能够在地图上对它们进行排序 但是当我今天这样做时 尝试通过按特定顺序添加它们来排序它们 使用 BringToBack bringToFront 等 两个图层中的点图标都位于所有
  • 如何使用mockMvc检查响应正文中的字符串

    我有简单的集成测试 Test public void shouldReturnErrorMessageToAdminWhenCreatingUserWithUsedUserName throws Exception mockMvc perf
  • SSRS IE8 JavaScript 错误无效字符 ScriptResource.axd

    我的一位同事在 SSRS 中制作了各种报告 我们办公室中有两台机器无法通过 Internet Explorer 8 加载报告 两台机器都在报告 正在加载 屏幕上返回 JavaScript 错误 在这些特定的机器上 报告在 FireFox 中
  • 由于 MIME 类型为 text/html,样式表未加载

    在 Firefox 上运行 MERN 应用程序时 在浏览器控制台中出现此错误 并且未加载 css The stylesheet http localhost 3000 src css component css was not loaded
  • CSS中心显示内联块?

    我这里有一个工作代码 http jsfiddle net WVm5d http jsfiddle net WVm5d 您可能需要将结果窗口放大才能看到对齐中心效果 Question 该代码工作正常 但我不喜欢display table 这是
  • 如何从另一个控制器重定向到 Index?

    我一直在寻找某种方法来重定向到Index从另一个控制器查看 public ActionResult Index ApplicationController viewModel new ApplicationController return
  • 我何时以及为什么应该使用 attr.Factory?

    我应该何时以及为何使用attr ib default attr Factory list over attr ib default 来自docs http attrs readthedocs io en stable api html我看到
  • 如何使用 JQuery 和 Ajax 验证表单字段并将表单数据发布到服务器?

    我正在尝试验证表单字段 例如姓名 不得为空 Email id 必须有效 手机 必须有效 填写所有信息后 我必须将此信息发送到服务器 并将响应重定向到不同的页面 这里什么都不起作用 我的表单 html