使用jQuery检查输入是否为空

我有一个表格,我希望所有的字段都被填写。如果单击一个字段,然后没有填写,我想显示一个红色背景。

这是我的代码:

$('#apply-form input').blur(function () {
if ($('input:text').is(":empty")) {
$(this).parents('p').addClass('warning');
}
});

无论字段是否填写,它都应用警告类。

我做错了什么?

1392348 次浏览
$('#apply-form input').blur(function()
{
if( !$(this).val() ) {
$(this).parents('p').addClass('warning');
}
});

你不一定需要.length或看看它是否为>0,因为空字符串的计算结果无论如何都是假的,但如果你想为了可读性考虑:

$('#apply-form input').blur(function()
{
if( $(this).val().length === 0 ) {
$(this).parents('p').addClass('warning');
}
});

如果你确定它总是在文本框元素上操作,那么你可以使用this.value

$('#apply-form input').blur(function()
{
if( !this.value ) {
$(this).parents('p').addClass('warning');
}
});

此外,你应该注意$('input:text')抓取多个元素,指定一个上下文或使用this关键字,如果你只是想引用一个单独的元素(在上下文的后代/孩子中有一个文本字段)。

if ($('input:text').val().length == 0) {
$(this).parents('p').addClass('warning');
}

: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

每个人都有正确的想法,但我喜欢更明确一点,并精简价值观。

$('#apply-form input').blur(function() {
if(!$.trim(this.value).length) { // zero-length string AFTER a trim
$(this).parents('p').addClass('warning');
}
});

如果你不使用.length,那么一个'0'的条目会被标记为坏的,一个5个空格的条目可以被标记为没有$的ok。修剪。祝你好运。

你可以尝试这样做:

$('#apply-form input[value!=""]').blur(function() {
$(this).parents('p').addClass('warning');
});

它将只对空值的输入应用.blur()事件。

还有一件事你可能想要考虑,目前它只能添加警告类如果它是空的,如何删除类再次当表单不再为空。

是这样的:

$('#apply-form input').blur(function()
{
if( !$(this).val() ) {
$(this).parents('p').addClass('warning');
} else if ($(this).val()) {
$(this).parents('p').removeClass('warning');
}
});

在模糊上做太有限了。它假设表单字段是重点,所以我更喜欢在提交时执行,并通过输入进行映射。在处理了多年花哨的模糊、聚焦等技巧后,让事情变得更简单会在重要的地方产生更多的可用性。

$('#signupform').submit(function() {
var errors = 0;
$("#signupform :input").map(function(){
if( !$(this).val() ) {
$(this).parents('td').addClass('warning');
errors++;
} else if ($(this).val()) {
$(this).parents('td').removeClass('warning');
}
});
if(errors > 0){
$('#errorwarn').text("All fields are required");
return false;
}
// do the ajax..
});
<script type="text/javascript">
$('input:text, input:password, textarea').blur(function()
{
var check = $(this).val();
if(check == '')
{
$(this).parent().addClass('ym-error');
}
else
{
$(this).parent().removeClass('ym-error');
}
});
</script>// :)

为什么没有人提到

$(this).filter('[value=]').addClass('warning');

在我看来更像jquery

在HTML 5中,我们可以使用一个新功能“required”,只需将它添加到你想要被要求的标签中:

# EYZ0

下面是一个使用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
}
}
$(function() {
var fields = $('#search_form').serializeArray();
is_blank = true;
for (var i = 0; i < fields.length; i++) {
// excluded fields
if ((fields[i].name != "locale") && (fields[i].name != "utf8")) {
if (fields[i].value) {
is_blank = false;
}
}
}
if (is_blank) {
$('#filters-button').append(': OFF');
}
else {
$('#filters-button').append(': ON');
}
});

检查所有字段是否为空,并在Filter_button上附加ON或OFF

.
function checkForm() {
return $('input[type=text]').filter(function () {
return $(this).val().length === 0;
}).length;
}

你可以用also..

$('#apply-form input').blur(function()
{
if( $(this).val() == '' ) {
$(this).parents('p').addClass('warning');
}
});

如果你对空格有疑问,那么试试..

$('#apply-form input').blur(function()
{
if( $(this).val().trim() == '' ) {
$(this).parents('p').addClass('warning');
}
});

keyup事件也会检测用户是否清除了方框(例如backspace会引发事件,但在IE中backspace不会引发按键事件)

    $("#inputname").keyup(function() {


if (!this.value) {
alert('The box is empty');
}});

很棒的答案集合,想补充的是,你也可以使用:placeholder-shown CSS选择器来做到这一点。使用IMO会更简洁一些,特别是如果您已经在使用jQ并且在输入中有占位符。

if ($('input#cust-descrip').is(':placeholder-shown')) {
console.log('Empty');
}


$('input#cust-descrip').on('blur', '', function(ev) {
if (!$('input#cust-descrip').is(':placeholder-shown')) {
console.log('Has Text!');
}
else {
console.log('Empty!');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<input type="text" class="form-control" id="cust-descrip" autocomplete="off" placeholder="Description">

如果需要输入,还可以使用:valid:invalid选择器。如果要对输入使用必需的属性,则可以使用这些选择器。

一个干净的css解决方案是:

input[type="radio"]:read-only {
pointer-events: none;
}

请使用此代码输入文本

$('#search').on("input",function (e) {

});

if($("#textField").val()!=null)

这对我很有用

试试这个:

function empty(){
if ($('.text').val().length == 0)
{
alert("field should not be empty");
}
}

如何检查null undefined和空在jquery

  $(document).on('input', '#amt', function(){
let r1;
let r2;
r1 = $("#remittance_amt").val();
if(r1 === undefined || r1 === null || r1 === '')
{
r1 = 0.00;
}


console.log(r1);
});