2011-01-31 3 views
0

Я изо всех сил пытаюсь найти хорошее решение для проверки IP-адреса с помощью проверки JQuery. У меня есть метод на стороне сервера, который будет принимать маску IP-адреса и маску подсети и сообщите мне, если она действительна или нет, однако веб-страница имеет два входа для включения в список IP-адресов подсети.Проверка 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> 

Есть ли способ назначить одно правило проверки для обоих этих входов. Поскольку, если вы вводите сетевой адрес и затем выбираете маску сети, которые являются недопустимыми, пользователь может изменить любой вход для исправления адреса.

Например:

Если вы наберете в '10 .0.1.0' и выберите „23“ из выпадающего списка, вы получите неверный адрес, потому что это не правильный адрес сети для сети/23. Затем пользователь может изменить сетевой адрес на «10 .0.0.0», или они могут изменить маску на «24», и тогда проверка будет верна, так как это допустимый сетевой адрес с действительной маской подсети. Однако только одна из ошибок будет удалена из формы.

Я могу назначить одну и ту же удаленную функцию каждому из входов, но она даст только тот, который вы измените действительный класс при его изменении. Поэтому пользователю может потребоваться изменить какой-либо текст, чтобы событие активировало метод onchange для клиентской стороны, чтобы снова подтвердить форму.

Еще раз, спасибо заранее.

+0

Вы не можете подтвердить свой код подтверждения? – Luke

+0

Я использую атрибут [remote], включенный в Asp.net MVC 3. И я проверяю, что входы действительны на стороне сервера, но я изо всех сил стараюсь найти хорошее решение для клиентской стороны. –

ответ

2

, но вы не должны использовать эту проверку только на стороне клиента. Легко манипулировать всеми данными перед подачей. Вы должны проверить его на стороне сервера и, если хотите, на стороне клиента ...

с клиентской стороны вы можете вставить в элемент управления select пустое состояние, например «Выбрать значение». каждый раз, когда пользователь меняет поле ввода, вы устанавливаете значение для начала, которое вы точно знаете, не может быть когда-либо действительным.