Javascript 带正则表达式的多If
我对if和regex有点问题,没有发现我的错误:-( 提交时,我有一个each循环遍历所有输入字段(works) 然后,在名称中的“von”处的所有输入字段上都有一个if 如果其中没有字符,那么第一部分非常有效(独立),而使用正则表达式的另一部分则不起作用:-( 因此,如果字段中没有任何内容,并且格式不符合24小时时间格式00:00或09:30,则应运行if 因此,当字段中没有任何内容且输入不符合24小时时间格式时,红色边框应可见 现在,它每次运行时都会有正确的输入和错误的输入:-( 守则:Javascript 带正则表达式的多If,javascript,jquery,regex,Javascript,Jquery,Regex,我对if和regex有点问题,没有发现我的错误:-( 提交时,我有一个each循环遍历所有输入字段(works) 然后,在名称中的“von”处的所有输入字段上都有一个if 如果其中没有字符,那么第一部分非常有效(独立),而使用正则表达式的另一部分则不起作用:-( 因此,如果字段中没有任何内容,并且格式不符合24小时时间格式00:00或09:30,则应运行if 因此,当字段中没有任何内容且输入不符合24小时时间格式时,红色边框应可见 现在,它每次运行时都会有正确的输入和错误的输入:-( 守则: $
$(submit1).click(function (e)
{
e.preventDefault();
var regtime = /([01]?[0-9]|2[0-3]):[0-5][0-9]/;
$("input").css({"border": "1px solid #bbb"});
$("input").each(function(index) {
if($('input[name$="[von]"]').val() == '' || (!regtime.test($('input[name$="[von]"]'))))
{
$('input[name$="[von]"]').css({"border": "solid", "border-color": "red"});
}
});
});
谢谢!试试看
var valid = true;
//loop through only the desired input fields
$('input[name$="[von]"]').each(function () {
//get the value of the current input fields in the loop
var $this = $(this),
value = $this.val();
//target the value in the regex
if (value == '' || !regtime.test(value)) {
$this.css({
"border": "solid",
"border-color": "red"
});
valid = false;
}
});
if (!valid) {
//prevent form submit
}
因为TJ删除了答案,借用了他对正则表达式测试失败的解释
将jQuery对象传递到RegExp#test将隐式调用toString
因此,您要测试的值应该是“[对象]”而不是
而不是输入的值
试一试
因为TJ删除了答案,借用了他对正则表达式测试失败的解释
将jQuery对象传递到RegExp#test将隐式调用toString
因此,您要测试的值应该是“[对象]”而不是
而不是输入的值
不过需要添加一点内容;如果输入为空或错误,则边框应该是红色的。如果不是,则返回默认值。您必须使用
$(“input”).css({“border”:“1px solid#bbb”);
@KarelG我想$(“input”).css({“border”:“1px solid#bbb”)添加一个@KarelG;
将所有输入字段重置为默认边界是的,对我来说这似乎是一个验证函数。这就是为什么我想添加它…不确定。我错过了.val(),因此它没有检查值:-(…还感谢在特定字段上尝试循环,但我必须验证几乎所有字段(其中一个未验证)因此,我建议最好在字段中使用一个secound if循环遍历所有内容,并使用VALEROR=1或VALEROR=0之类的错误处理方法来防止出现错误时提交帖子?不过需要添加一点内容;如果输入为空或错误,则边框应为红色。如果没有,则返回默认值。您必须添加带有$(“输入”).css({“边框”:“1px solid#bbb”})的else
块$(“输入”).css({“边框”:“1px solid#bbb”})
将所有输入字段重置为默认边框是的,对我来说这似乎是一个验证函数。这就是我想添加它的原因…不确定。我错过了.val()所以它没有检查值:-(…也感谢您在特定字段上验证了一个循环,但我必须验证几乎所有字段(一个未验证)因此,我建议在字段中使用一个secound if循环遍历所有内容,并使用VALEROR=1或VALEROR=0之类的方法进行错误处理,以防止出现错误时提交帖子?