Php 验证ajax返回的表单
如果我有一个页面有一个ajax链接,并且代码返回一个需要验证的表单,那么我应该把验证代码放在哪里呢。假设我的表单使用jquery验证插件进行了此验证Php 验证ajax返回的表单,php,jquery,ajax,Php,Jquery,Ajax,如果我有一个页面有一个ajax链接,并且代码返回一个需要验证的表单,那么我应该把验证代码放在哪里呢。假设我的表单使用jquery验证插件进行了此验证 jQuery(document).ready(function() { $("#basicForm").validate({ showErrors: function(errorMap, errorList) { // Clean up any tooltips for valid elements $.e
jQuery(document).ready(function() {
$("#basicForm").validate({
showErrors: function(errorMap, errorList) {
// Clean up any tooltips for valid elements
$.each(this.validElements(), function(index, element) {
var $element = $(element);
$element.data("title", "") // Clear the title - there is no error associated anymore
.removeClass("error")
.tooltip("destroy");
});
// Create new tooltips for invalid elements
$.each(errorList, function(index, error) {
var $element = $(error.element);
$element.tooltip("destroy") // Destroy any pre-existing tooltip so we can repopulate with new tooltip content
.data("title", error.message)
.addClass("error")
.tooltip(); // Create a new tooltip based on the error messsage we just set in the title
});
},
submitHandler: function(form) {
var myselect = $('select[name=ddCustomers]');
//alert(myselect.val());
window.location.replace("customer.php?customer_id=" + myselect.val());
}
});
$("#basicForm").removeAttr("novalidate");
});
我应该把它放在哪里作为文档。准备好了,我通常会把它放在哪里。这个代码已经被调用了
我希望这是有道理的
我可以把它放在初始页面加载的页面上,以便在表单返回时准备好吗
我已经读过,我可以在文档中进行验证。关于函数,但我不太理解。我是否会将类似的内容与ajax响应一起发布以进行验证
$(document.body).on('click', '#basicForm', function(){
$("#basicForm").validate({
submitHandler: function() {
// do whatever you need here
}
});
});
谢谢你的帮助。这让人困惑,我在谷歌上找不到一个像样的例子
编辑
我知道如何为动态生成的表单编写验证代码,因此感谢您的回答,但我对此没有问题。问题是我应该将代码放在ajax返回中的什么位置?
也许我有一个误解,但我使用的是jquery验证模块基础帮助,我只见过在doc中调用的`表单验证方法'。在第一页就准备好了-从来没有ajax回发
准备好了吗
选择权
1硬编码的页面已经在为ajax注入表单编写了吗?不够动态-注入的表单是动态创建的,因此可能需要进行验证
是
2将验证代码添加到
文件
当我为新表单执行ajax回发时?这可能吗?我不是一个客户端程序员
我感到困惑的是,这样一个常见的场景没有设计模式。虽然我读过通过ajax发回的表单,但这是一个糟糕的做法,因为它会混淆浏览器和现在ajax编写的内容,所以也许这就是我找不到解决方案的原因
谢谢我用jquery编写和开发了许多web应用程序,php是服务器端脚本。我形成的方式是将jquery代码和html放在同一个页面上,因为jquery需要检查html元素,并使用正确的错误消息进行响应,并在提交form-process.php之前清理所有数据字段(例如,如果这是服务器端脚本的名称) 拥有:
$(document.body).on('click', '#basicForm', function(){
$("#basicForm").validate({
submitHandler: function() {
// do whatever you need here
}
});
});
代码与如下页面相同:create-username.html或create-username.php页面
html元素。有些人更喜欢将jquery放在底部,这取决于您如何使用
页面是结构化的,但我喜欢将js放在旧实践的顶部,尽管有时候它不适用于jquery
在同一块中包含工具提示代码。我不喜欢到处都有jquery;如果出现错误,或者您需要在将来的引用中进行修改,那么编辑、添加或修复代码并不难。我希望这有帮助 您需要首先初始化验证插件并设置所需的规则。然后,当用户提交表单时,请防止默认表单提交行为,如果根据您设置的规则的标准成功验证了所有内容,则可以使用ajax将表单手动提交到服务器
$('#basicForm').validate({ // initialize the plugin
rules: {
field1: {
required: true,
email: true
},
field2: {
required: true,
minlength: 5
}
}
});
$('document').on('submit', '#basicForm', function(e){
if($(this).valid()){
//client side is valid, make ajax call
}
e.preventDefault();
});
我在您发布的代码中没有看到任何ajax。基本上,您希望使用JavaScript在客户端尽可能多地进行验证。一旦客户端通过验证,那么ajax调用应该在服务器端进行验证,如果一切正常,则更新数据库。客户端验证是为了用户体验,服务器端验证是为了业务逻辑和数据库兼容性。我想在客户端验证它,但我不知道将验证表单的代码放在客户端的何处。你可以将document.body样式的侦听器放在几乎任何地方。一旦您将其附加到正文,它将侦听现有表单以及将来可能附加到正文的任何表单。因此,我是在进行ajax调用的第一页添加它,还是在ajax调用中覆盖它,因为它是动态的,具有可操作性?我可以这样做吗?例如,在新表单下添加类似的内容我可以返回此代码是我对新表单的ajax响应,并在courseNo页面上获得它。不,你不应该在ajax响应中返回javascript代码。我所访问的网站在一个页面上有对服务器的每次调用。整个网站都是一页接一页的,我的意思是在表单回调之前加载第二个表单时,页面上会有第二个表单的验证代码,但是表单是动态的,所以验证也应该是动态的