2012-01-25 11 views
4

私は、六角色をチェックするカスタムjqueryの検証規則を作成した:私は私のテキストボックスを作成するとjQueryの控えめなカスタムエラーメッセージ

$.validator.addMethod("hexcolor", function (value, element) { 
    return this.optional(element) || /^(#){1}([a-fA-F0-9]){6}$/.test(value); 
}, "Please insert a valid hex color (#______)"); 

$.validator.unobtrusive.adapters.add("hexcolor", function (options) { 
    options.rules['hexcolor'] = options.params; 
    options.messages['hexcolor'] = options.message; 
}); 

、私はこの

@Html.TextBoxFor(p => p.Color, new { data_val = "true", data_val_hexcolor = "Error message" }) 

のようなものを持っている私は2つの問題を抱えています/ questions:

  1. 値が無効の場合、エラーメッセージは「Please in」の代わりに「Error message」です(#_ _ _ _ _)」

  2. このように作成されたいくつかの例では、エラーメッセージが表示されています。

    jQuery.validator.addMethod( "maxWords"、function(value、element、params){ return this.optional(element)|| stripHtml(value).match(/ \ b \ w + \ b/g) .length < params; }、jQuery.validator.format( "{0}以下の単語を入力してください。

文字列プレースホルダ "{0} {1}"などは、パラメータの値に置き換えられますか?

答えて

0

あなたの質問は私にはあまり明確ではありません。ただし、パラメータを受け入れるカスタムエラーメッセージを作成しようとしている場合。これを実現する方法は次のとおりです。

jQuery.validator.addMethod('validdate', function (value, element, 
    params) { 
      value = model.date(); 
      if (value === '') { 
       return false; 
      } 
      var range = JSON.parse(params); 
      return value > range[0] && value < range[1]; 
     }, $.format('You can only specify date between {0} and {1}')); 
関連する問題