Back

定制使用 jquery validation validate

发布时间: 2017-02-26 05:39:00

参考: http://stackoverflow.com/questions/241145/jquery-validate-plugin-how-to-create-a-simple-custom-rule

先来个最简单的: 

  $.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

Back