【问题标题】:IP Address Validation with a select input for a mask带有掩码选择输入的 IP 地址验证
【发布时间】:2011-01-31 19:24:03
【问题描述】:

我正在努力寻找一个使用 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”方法以再次验证表单。

再次感谢您。

【问题讨论】:

  • 你能出示你的验证码吗?
  • 我正在使用 Asp.net MVC 3 中包含的 [remote] 属性。我确实检查了输入在服务器端是否有效,但我正在努力寻找一个好的解决方案客户端。

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


【解决方案1】:

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

在客户端,您可以在选择控件中插入一个空状态,例如“选择一个值”。每次用户更改输入字段时,您都会将选择重置为开始,您完全知道这永远不会有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多