【发布时间】:2013-05-09 18:58:15
【问题描述】:
我正在为各种输入编写一个小的必需 HTML5 属性回退。到目前为止进展顺利,但是在检查单选按钮是否为 ':checked' 并使用 'OR' || 时遇到问题循环中的运算符:
if (self.val() === '' || self.is(':not(:checked)')) {
由于某种原因,当我添加它时,它会稍微破坏脚本,并且会指示输入字段(类型=文本)是空的,而不是空的。有没有更好的方法来循环并指出输入类型“文本”和“无线电”之间的区别?
这是循环:
var reqClass = $('.required')
reqClass.each(function(){
var self = $(this)
// if empty
if (self.val() === '' || self.is(':not(:checked)')) {
// if it doesn't have require-checked class
if (!self.hasClass('require-checked')) {
self.addClass('require-checked')
self.parent().append('<span class="form-error">This field is required.</span>')
}
e.preventDefault()
//$('.form-submit').attr('disabled', true)
// if it's been checked, but there is a value now
} else if (self.hasClass('require-checked') && !(self.val() === '')) {
self.siblings('.form-error').hide()
}
})
类显然存在于“后备”浏览器中,并且会即时更改。这是一个 JSFiddle,感谢您的帮助:
【问题讨论】:
-
我已经构建了一个非常坚固和小型的验证器,只需使用它,它将为您节省时间..dropthebit.com/150/validation-styling-semantics-of-forms
-
它没有说 OR,那只是两行,甚至不是一个完整的火柴人?
-
您可能想要编辑您的标题。暗示
OR属于 jQuery 是很容易在这里引起蛇皮的事情之一。 -
这是检查已检查元素的糟糕方法和缓慢方法!
-
你会推荐什么@epascarello?
标签: javascript jquery input