mad*_*adi 3 jquery jquery-plugins jquery-validate cakephp-1.3
嗨,我目前正在使用cakePHP做一个学校项目.我有以下形式,并假设创建了表单标记.
<?php echo $form->input('number',array('id'=>"number",'title'=>"Please enter a number with at least 3 and max 15 characters ha!"));?>
<?php echo $form->input('secret',array('id'=>"secret"));?>
<?php echo $form->input('math',array('id'=>"math",'title'=>"Please enter the correct result!"));?>
<?php echo $form->input('userName',array('id'=>"userName",'title'=>"User Exist"));?>
Run Code Online (Sandbox Code Playgroud)
我正在使用客户端验证,这里的代码是:
$.validator.addMethod("buga", function(value) {
return value == "buga";
}, 'Please enter "buga"!');
// this one requires the value to be the same as the first parameter
$.validator.methods.equal = function(value, element, param) {
return value == param;
};
$().ready(function() {
var validator = $("#texttests").bind("invalid-form.validate", function() {
$("#summary").html("Your form contains " + validator.numberOfInvalids() + " errors, see details below.");
}).validate({
debug: true,
errorElement: "em",
errorContainer: $("#warning, #summary"),
errorPlacement: function(error, element) {
error.appendTo( element.parent("td").next("td") );
},
success: function(label) {
label.text("ok!").addClass("success");
},
rules: {
"data[User][number]": {
required:true,
minlength:3,
maxlength:15,
number:true
},
"data[User][secret]": "buga",
"data[User][math]": {
equal: 11
}
},
submitHandler: function(form) {
form.submit();
}
});
});
Run Code Online (Sandbox Code Playgroud)
以上只有客户端验证可以对前三个输入执行,但我对此案例的最后输入可能需要检查用户名是否唯一.我怎么能够对服务器进行ajax调用?我只是对那部分感到困惑.希望有人能指导我.
jQuery validate有一个特定的服务器端验证规则(远程)
http://docs.jquery.com/Plugins/Validation/Methods/remote#options
上面的页面包含了发出请求所需的所有信息,第二个示例几乎就是您的用例.
远程脚本应仅返回true或false的文本.
看这个页面:
http://jquery.bassistance.de/validate/demo/milk/
打开您的firebug/chrome控制台并在填写电子邮件地址并单击"提交"后查看请求.
祝你的项目好运.