質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery Validation Plugin

jQuery Validation PluginはjQueryのプラグインであり、クライアント側のデータ検証を行う役割があります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

9665閲覧

jQueryValidationEngineで2つのセレクトボックスの大小チェックを入れるには?

kuao23

総合スコア9

jQuery Validation Plugin

jQuery Validation PluginはjQueryのプラグインであり、クライアント側のデータ検証を行う役割があります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2014/12/18 05:24

validation engineを使って数値の大小を比べ入力制限をしたいと思っています。
例えば以下のようにセレクトボックスA、Bがあるときに、Aで2を選んだら、
Bは3以上でなければアラートが出るという形です。

<select name="A" id="A"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <select name="B" id="B"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select>

他の入力チェックにvalidation engineを使っており、
出来れば統一して制限をかけられればと思っていますので、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

 こんな感じでいかがでしょうか?

lang

1<form id="formID"> 2 <select name="A" id="A" class="validate[required,funcCall[test[<,B]]]"> 3 <option value="1">1</option> 4 <option value="2">2</option> 5 <option value="3">3</option> 6 <option value="4">4</option> 7 </select> 8 9 <select name="B" id="B" class="validate[required,funcCall[test[>,A]]]"> 10 <option value="1">1</option> 11 <option value="2">2</option> 12 <option value="3">3</option> 13 <option value="4">4</option> 14 </select> 15</form>

lang

1function test(field, rules, i, options){ 2 var targetName = rules[i+3]; 3 var target = $( '#'+ targetName ); 4 var operator = rules[i+2]; 5 if ( operator == '<' ) { 6 if ( (field.val()|0) >= (target.val()|0) ) { 7 return targetName + "より小さくしてください"; 8 } 9 } else if ( operator == '>' ) { 10 if ( (field.val()|0) <= (target.val()|0) ) { 11 return targetName + "より大きくしてください"; 12 } 13 } 14}

 
ご存知とは思いますが、test関数はグローバルにおいてください。

投稿2014/12/20 06:31

Lhankor_Mhy

総合スコア36115

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuao23

2014/12/22 01:41

ありがとうございます! 思っていた通りの動作が出来るようになりました! コードの内容をまだ理解できていませんが、勉強していきます^^;
guest

0

処理内容も難しくはありませんし質問者の求める答えではありませんが自作するのが最も良いのではないかと思います。changeイベントにvalueを取得する処理を書いておき、その後比較という形で実現できるわけです。使用しているライブラリのメソッドを呼び出してエラーメッセージを出せれば完璧ですが恐らく難しいのではないかと。

投稿2014/12/21 17:25

Cf_cwd

総合スコア730

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuao23

2014/12/22 01:51

ありがとうございます! 処理方法について勉強になりました。 今後自作できるように頑張ります!
guest

0

エラーが起きるような選択をユーザーが出来ないようにしたほうが良いです。
一番目の選択をしたら2番目の選択肢の内容を1編目の値以上のものだけに動的に変更させる例を書いてみました。

投稿2014/12/21 00:24

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuao23

2014/12/22 01:47

ありがとうございます! 始めから選べないようにも出来るんですね。 今後の書き方の参考にさせて頂きます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問