我想以下列方式使用jauery验证文本字段:
1。文本字段仅占用0-9,只有一个小数位;
2。如果金额输入不是负数,则将负数符号放在 请求输入数字!
$('[name="pm"]').keyup(function() {
//?
});
答案 0 :(得分:6)
您可以通过regular expression和String#match
验证字符串:
if (this.value.match(/^-?\d+(?:\.\d){0,1}$/)) {
// It's valid
}
或者更多jQuery-ish(上面的内容不能可靠地支持textarea
,只有input
):
if ($(this).val().match(/^-?\d+(?:\.\d){0,1}$/)) {
// It's valid
}
(例如,this.value
=> $(this).val()
。)
打破正则表达式:
^
- 匹配字符串开头-?
- 一个可选的-
字符\d+
- 一个或多个数字(0-9)(?:...)
- 非捕获分组,包含:
\.\d
- 最多一个.
后跟一位数字{0,1}
- 允许非捕获分组为零或一次$
- 匹配字符串结尾请注意,上述内容拒绝了-.1
。如果你想接受它,它会变得更复杂,但上面的链接应该有所帮助。
答案 1 :(得分:2)
指定解决方案的安排和补充:
来自@Some_Coder回答
1)首先这样做
http://www.texotela.co.uk/code/jquery/numeric/
来自playmaker的修改
$('[name="pm"]').keyup(function() { if($(this).val().indexOf('-') != 0){ var val = $(this).val(); $(this).val("-" + val); } if ($(this).val() == '-') { $(this).val(''); } });
你会得到渴望的结果!
答案 2 :(得分:1)
试试这段代码。
$('[name="pm"]').keyup(function() { if($(this).val().indexOf('-') != 0){ var val = $(this).val(); $(this).val("-" + val); } });
如果它不起作用,请将其替换为$('[name =“pm”]')
答案 3 :(得分:0)
如果你使用jQuery,那么你可以使用这个插件。