我有一个表格,我希望所有的字段都被填写。如果单击一个字段,然后没有填写,我想显示一个红色背景。
这是我的代码:
$('#apply-form input').blur(function () {
if ($('input:text').is(":empty")) {
$(this).parents('p').addClass('warning');
}
});
无论字段是否填写,它都应用警告类。
我做错了什么?
我有一个表格,我希望所有的字段都被填写。如果单击一个字段,然后没有填写,我想显示一个红色背景。
这是我的代码:
$('#apply-form input').blur(function () {
if ($('input:text').is(":empty")) {
$(this).parents('p').addClass('warning');
}
});
无论字段是否填写,它都应用警告类。
我做错了什么?
当前回答
下面是一个使用keyup选择输入的例子。它还使用修剪来确保空白字符序列不会触发真值响应。这是一个可以用来开始搜索框或与这类功能相关的东西的示例。
YourObjNameSpace.yourJqueryInputElement.keyup(function (e){
if($.trim($(this).val())){
// trimmed value is truthy meaning real characters are entered
}else{
// trimmed value is falsey meaning empty input excluding just whitespace characters
}
}
其他回答
一个干净的css解决方案是:
input[type="radio"]:read-only {
pointer-events: none;
}
下面是一个使用keyup选择输入的例子。它还使用修剪来确保空白字符序列不会触发真值响应。这是一个可以用来开始搜索框或与这类功能相关的东西的示例。
YourObjNameSpace.yourJqueryInputElement.keyup(function (e){
if($.trim($(this).val())){
// trimmed value is truthy meaning real characters are entered
}else{
// trimmed value is falsey meaning empty input excluding just whitespace characters
}
}
:empty伪选择器用于检查元素是否不包含子元素,你应该检查它的值:
$('#apply-form input').blur(function() {
if(!this.value) { // zero-length string
$(this).parents('p').addClass('warning');
}
});
可以考虑使用jQuery验证插件。对于简单的必填项,它可能有点过分,但它足够成熟,可以处理您甚至还没有想到的边缘情况(我们在遇到它们之前也不会想到)。
你可以用类"required"来标记必填字段,在$(document).ready()中运行$('form').validate(),这就是它所需要的。
它甚至也托管在微软CDN上,以便快速交付:http://www.asp.net/ajaxlibrary/CDN.ashx
为什么没有人提到
$(this).filter('[value=]').addClass('warning');
在我看来更像jquery