我正在尝试编写一个验证 IPv4 地址的函数。
一切看起来都正常,但似乎没有选择正确的类别。
我的代码在这里:http://jsfiddle.net/felix001/X7EuJ/23/
<label for="input">IP</label>
<input type="text" name="input" id="input" size="22" />
<input type="submit" value="submit" "whatmask_input" id="submit" align="right" />
JavaScript:
function ipv4addr(x) {
var REGEX = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
if ($x != $REGEX) {
$("#input").addClass(".bad");
}
else {
$("#input").addClass(".good");
}
}
$(document).ready(function() {
$("#submit").click(ipv4addr("#input"));
});
谁能告诉我解决此问题的最佳方法吗?
谢谢
最佳答案
在打开 fiddler 页面时加载浏览器的开发工具控制台(例如,在 Chrome 中)。
第一个错误是:
ReferenceError: Can't find variable: $x
不需要在变量名前添加 $ 前缀,$foo
和 foo
是两个不同的变量名。如果您有 var foo
,则 foo
就是变量名称。
看看代码,这可能不会达到您的预期:
$("#submit").click(ipv4addr("#input"));
这与以下内容相同:
var result = ipv4addr("#input");
$("#submit").click(result);
即将调用ipv4addr
的返回值(始终未定义)传递到click方法中。您可能想传递一个函数,以便在每次点击时调用。
关于jquery - Ipv4 验证 Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10921177/