使用掩码的选择输入进行IP地址验证

时间:2011-01-31 19:24:04

标签: jquery asp.net-mvc jquery-plugins asp.net-mvc-3

我很难找到一个用jQuery Validation验证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”方法以再次验证表单。

再次提前感谢。

1 个答案:

答案 0 :(得分:2)

但您不应仅在客户端使用此验证。在提交之前,很容易操作每个数据。您应该在服务器端检查它,如果您也想在客户端检查...

在客户端,您可以在select控件中插入一个空状态,如“选择一个值”。每次用户更改输入字段时,您都会将select重置为start,而您明确知道该选择无法生效