2011-01-31 9 views
0

jQuery検証を使用してIPアドレスを検証するための優れた解決策を見つけるのには苦労しています。 IPアドレスとサブネットマスクを取るサーバー側の方法がありますが、有効かどうかはわかりませんが、WebページにはIPアドレスサブネットマスクコンボを入力する2つの入力があります。マスク用の選択入力によるIPアドレスの検証

<input id="NetworkAddress" class="required" name="NetworkAddress" type="text" value="" /> 
<select class="required" id="NetworkMask" name="NetworkMask"> 
<option value=""></option> 
<option value="255.255.255.254">31</option> 
<option value="255.255.255.252">30</option> 
....snip... 
</select> 

これら両方の入力に1つの検証ルールを割り当てる方法はありますか?ネットワークアドレスを入力して無効なネットワークマスクを選択した場合、ユーザはいずれかの入力を変更してアドレスを修正できる可能性があるためです。例えば

あなたは'10で入力した場合.0.1.0' と選択 『ドロップダウンから』 23のことは/ 23ネットワークのための有効なネットワークアドレスではありませんので、あなたは、無効なアドレスを取得します。ユーザはネットワークアドレスを'10 .0.0.0 'に変更するか、またはマスクを' 24 'に変更することができ、有効なサブネットマスクを持つ有効なネットワークアドレスであるため、検証が真となります。ただし、エラーの1つのみがフォームから消去されます。

私は各入力に同じリモート機能を割り当てることができますが、変更すると有効なクラスを変更するものだけを提供します。したがって、ユーザーがテキストを変更するだけでイベントがクライアント側の 'onchange'メソッドを起動してフォームを再度検証する必要があるかもしれません。

もう一度、事前に感謝します。

+0

あなたの検証コードを表示できますか? – Luke

+0

私はAsp.net MVC 3に含まれている[リモート]属性を使用しています。そして、入力がサーバー側で有効であることを確認しますが、クライアント側には良い解決策を見つけるのに苦労しています。 –

答えて

2

しかし、この検証はクライアント側でのみ行うべきではありません。送信前にすべてのデータを操作するのは簡単です。サーバー側でチェックして、クライアント側でもチェックする必要がある場合は...

クライアント側では、「値を選択」のような空の状態を選択コントロールに挿入できます。ユーザーが入力フィールドを変更するたびに、最初に選択をリセットします。これは有効ではないことがわかっています

関連する問題