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

这是我的代码:

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

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

我做错了什么?


当前回答

你可以尝试这样做:

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

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

其他回答

请使用此代码输入文本

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

});

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

是这样的:

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

可以考虑使用jQuery验证插件。对于简单的必填项,它可能有点过分,但它足够成熟,可以处理您甚至还没有想到的边缘情况(我们在遇到它们之前也不会想到)。

你可以用类"required"来标记必填字段,在$(document).ready()中运行$('form').validate(),这就是它所需要的。

它甚至也托管在微软CDN上,以便快速交付:http://www.asp.net/ajaxlibrary/CDN.ashx

试试这个:

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

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

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