2016-11-24 4 views
0

jQuery検証プラグインを使用して、一部のテキストフィールドをオンザフライで検証しようとしています。ルールの1つに、フィールドに'http'を含めることはできません。これを実現するには、どうすればvalidate()メソッドを変更できますか?Jqueryの検証テキストには含めることができません

@using (Html.BeginForm("UserDetails", "Account", FormMethod.Post, new {id = "registerform" })) 
{ 
    <input id="Facebook" minlength="2" name="Facebook" placeholder="eg: Joe.Bloggs123" type="text" value> 
    ... 
} 

<script> 
    $('#registerform').validate({ 
     // ...? 
    }) 
</script> 

編集:validator.addmethodを追加しようとしましたが、それでも動作しません。だからここに私はスクリプトの中で持っているものです。

$('#registerform').validate(); 

jQuery.validator.addMethod("Facebook", function(value, element) { 
      return this.optional(element) || (value.indexOf('http') >= 0); 
     }, "*Please just use your userid, not the full url"); 

また、私はこれらの多くを検証する必要があるだろう、それはカスタムクラスを追加し、その中から選択することはできませんか?

+1

uは、この –

+0

の検証方法をカスタマイズする使用することができますは、ドキュメントを読んで:https://jqueryvalidation.org/ jQuery.validator.addMethod /あなたが試したことを見せてください –

+0

私が試している方法でOPを編集しました – Jynn

答えて

3

は最終的に私のために働いていたものですjQueryのバリデータを追加します。

<script> 
    jQuery.validator.addMethod("checkhttp", function(value, element) { 
         return this.optional(element) || (value.indexOf('http') < 0) && (value.indexOf('www') < 0); 
        }, "*Please just use your userid, not the full url"); 

        jQuery.validator.classRuleSettings.checkhttp = { checkhttp: true }; 

       $('#registerform').validate(); 
</script> 

@using (Html.BeginForm("UserDetails", "Account", FormMethod.Post, new {id = "registerform" })) 
{ 
    <input id="Facebook" class="checkhttp" name="Facebook" placeholder="eg: Joe.Bloggs123" type="text" value> 
} 
-1

これはあなたのケースのためですが、私はあなたが正規表現

ごめんなさいEDIT を使用することをお勧め、私は質問を右に読んでいません。

ここ

jQuery.validator.addMethod("DoesNotContain", function(value, element) 
{ 
    return this.optional(element) || (indexOf('http') < 0); 
}, "* Can't contain http"); 
+0

これはjquery.validationの実装ではありません –

関連する問題