2017-04-10 10 views
0

jQuery検証Pluginのデフォルトのエラーメッセージを変更する必要があります。私はhereからこれを達成する方法を学んできました。しかし、私はより多くのcustomazationが必要です。入力フィールドのタイプに基づいて異なるエラーメッセージを設定することは可能ですか? 私は意味は、のために:jQuery検証、入力タイプに基づいて異なるエラーメッセージ

<input type="text" required> 

デフォルトのエラーmassegeは「このフィールドを充填することが必要である」べきです。そして

<input type="file" required> 

のデフォルトのエラーmassegeは、「文書が必要とされる接続」する必要があります。 私は、このような分野で個別にエラーメッセージを設定することができることを知っている:

$('form').validate({     
    messages: { 
     FieldName: { required: "Attaching document is required" } 
    } 
}); 

問題は、フォームが本当に巨大であるので、私は別のエラーメッセージを書くことは良い解決策ではないだろうと思った、ということです。

<input type="text" name="textfield" required> 
<input type="file" name="filefield" required> 

、あなたの検証メッセージは次のようになります:

var validator = $("form").validate({ 
rules: { 
    textfield: "required", 
    filefield: "required", 
}, 
messages: { 
    textfield: "Filling this field is required", 
    textfield: "Attaching document is required", 
} 
} 
+0

あなたのフォームにいくつのテキストボックス/ファイルフィールドがあるのか​​教えてください。 –

+0

9つの異なるサイズのフォームがあり、全体で300の入力フィールドがあり、そのうちの48個が「ファイル」フィールド@SarojSasmal –

答えて

-1

することで、2つのフィールドがあるとし、各入力フィールドに別の名前を付けて、名前

ごとに個別に検証ルールを作成します.rules('add')メソッドとjQuery .each()を組み合わせて、に基づいてエラーメッセージをグローバルに変更します。

​​

DEMO:jsfiddle.net/cftesLwd/

私のデモでは、あなたも、あなたがルール自体を宣言するために、このメソッドを使用しない場合にメッセージを変更するには、このメソッドを使用することができることを示しています。メッセージは、required属性を含むフィールドにのみ表示されます。そうでない場合、インラインrequired属性がなくてもyou can also easily declare the required rule for all inputs of these typesになります。

+0

ありがとうございます。もう一度質問をお読みください。私は与えられた解決策が受け入れられない理由を説明した –

+0

あなたの状況のた​​めの1つの回避策があります。各フィールドにメッセージを宣言する必要はありませんが、すべてのフィールドに「名前」属性が設定されているとします。その後、すべてのフィールドをループし、フィールドタイプをチェックし、validator.messagesの値のオブジェクトを構築します。 == 'テキスト'){msgObj [field.attr( "name")] = "このフィールドを入力する必要があります。"} '、その後:'バリデーター。 messages = msgObj; ' –

+0

* "回避策が1つあります。*〜必要ありません。既に組み込みのメソッドがあります。また、入力に 'required'属性を使用する場合、宣言を' rules'オブジェクト内に置くことは完全に冗長で余分です。 – Sparky

関連する問題