如何使用JQuery和Ajaxvalidation表单字段并将表单数据发布到服务器?
我正在尝试validation表单字段,如名称(不能为空),Email_id(必须有效),移动(必须有效)。 填写完所有信息后,我必须将此信息发送到服务器,并将响应重定向到不同的页面。 没有什么工作 ,
我的form.html
用于validation表单和发送数据的脚本
$(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 } }); });
PHP代码
-
您不需要外部
click
处理程序,因为插件会自动捕获click
(type="submit"
)并阻止提交。 -
您需要在
form
中type="submit"
的input
或button
,否则根本不会触发插件。 -
在
submitHandler
.validate()
方法的submitHandler
中有form.submit
时,不能有外部.ajax
函数。 这意味着当您的单击处理程序尝试使用ajax
,插件正在尝试提交表单。 他们都无法同时工作。 根据文档,任何ajax
属于submitHandler
,它是“经过validation后通过Ajax提交表单的正确位置” 。 -
您不需要检查表单有效性,因为当您使用内置的
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 } }); });
演示: http : //jsfiddle.net/mh6cvf2u/