先来个最简单的:
$.validator.addMethod(
"valid_return_count",
function(value, element) { // 这个element, 就是某个 input
return value <= parseInt($(element).attr("max_count"))
},
"退菜的数量不能大于已点数量"
);
这个是远程验证, 注意,务必使用remote 方法,不要使用 jQuery.ajax 方法,不好使. 参考我的答案: https://stackoverflow.com/a/48074571/445908
1. HTML代码:
<input name="user_name" type="text" >
2. jQuery validate 的代码:
$("form").validate({
rules: {
'user_name': {
// 这里jQuery会自动发起一个GET 请求
// /interface/users/is_username_valid?user_name=<输入的值>
// 远程接口应该仅仅返回: "true" 或者 "false" , (后者表示验证不通过)
remote: '/interface/users/is_username_valid'
},
},
3. 下面是远程的 ruby代码,
class Interface::UsersController < ActionController::Base
def is_username_valid
render :text => !User.exists?(:user_name => params[:user_name])
end
end