如何使用 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 验证表单字段并将表单数据发布到服务器? 的相关文章

  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 摩卡 - Chai Karma“套件未定义”

    我对 jscript tdd 很陌生 遇到了问题 希望有人能告诉我我在做什么 在浏览器中运行测试 通过 HTML 文件 一切正常 通过节点和业力运行它们我得到以下异常 我想在 node js 主机的 karma 中使用 Mocha 和 Ch
  • 图像无法在带有 DOM 的 IE 中加载:控制台中的 7009 错误(无法解码)

    当在 IE 中的单个页面上加载许多图像时 在 IE11 中重现 其中一些图像开始加载失败 并在控制台中出现类似以下警告的内容 DOM7009 无法解码 URL 处的图像 某些唯一的 url 当我查看网络流量时 似乎确实从服务器收到了每个图像
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 可以在初始 DOM 解析期间/之前修改 DOM 吗?

    是否可以在初始 DOM 解析期间或之前修改 DOM 或者我是否必须等到 DOM 被解析和构建之后才能与其交互 更具体地说 是否有可能阻止 DOM 中的脚本元素使用用户脚本 内容脚本或 Chrome 或 Firefox 中的类似脚本运行 在解
  • 在打字稿中导入 json

    我是 typescript 的新手 在我的项目中 我们使用 typescript2 在我的要求之一中 我需要导入 json 文件 所以我创建了 d ts 文件如下 test d ts declare module json const va
  • React-Redux:state.setIn() 和 state.set() 有什么区别?

    我见过使用setIn and set 在一些react redux代码中 state setIn state set 我在这里找到了一些文档https facebook github io immutable js https facebo
  • 如何将函数附加到弹出窗口关闭事件(Twitter Bootstrap)

    我做了一些搜索 但我只能认为我可以将事件附加到导致其关闭的按钮 https stackoverflow com questions 13205103 attach event handler to button in twitter boo
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • DataTables row.add 到特定索引

    我正在替换这样的行项目 var targetRow entity row dataTable targetRow closest table dataTable DataTable dataTable row targetRow remov
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • Chrome//kendoUI/jQuery:超出最大调用堆栈大小

    我正在使用 hottowell 模板来创建 spa 应用程序 并且我从 jquery 中收到了一个很好的错误 基本上我的问题从此刻开始尝试绑定我的视图 viewModelBinder js 来自 durandal 库 viewModelBi
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 在 Shopify 商店中嵌入 Vue 组件

    在产品页面中 我尝试显示自定义 Vue 组件 为简洁起见 该组件根据给定的产品 ID 显示 Firebase 数据库中的一些信息 我最初尝试将其制作为 Shopify 应用程序 以便我可以访问他们的 API 我实现了 OAuth 并且可以检
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • 如何在react-highcharts中使用图表工具提示格式化程序?

    如何使用图表工具提示格式化程序 我正在使用高图表的反应包装器 我有这样的配置 const CHART CONFIG tooltip formatter tooltip gt var s b this x b each this points

随机推荐

  • 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