在提交之前使用模糊和聚焦对输入进行Jquery检查

时间:2011-08-25 14:00:59

标签: jquery ajax

我有一个页面有几个表单,我想为表单中的每个输入添加一个JQUERY或AJAX检查。 所有输入都是必需的。我确实设法进行检查,但我需要添加检查foreach输入,我真的不喜欢。 你能帮我把这个输入检查更加全局化吗? 我设法制作了这段代码:

$(document).ready(function()
{
    $(document.login.user).blur(function()
    {
        if (document.login.user.value == "")
        {
            document.login.user.style.background = "red";
        }
        else document.login.user.style.background = "white";
    });
    $(document.login.pass).blur(function()
    {
        if (document.login.pass.value == "")
        {
            document.login.pass.style.background = "red";
        }
        else document.login.user.style.background = "white";
    });
});

你可以让它全局工作..分别检查每个输入并产生我已添加的效果。

7 个答案:

答案 0 :(得分:2)

你可以创建一个这样的简单插件:

(function($){
    $.fn.validateEmpty = function(settings) {
        return $(this).each(function(){
            $(this).css({background: $(this).val() == '' ? settings.empty : settings.nonEmpty});
        });
    };
})(jQuery);

然后使用它:

$(document).ready(function(){
    $('#myForm input').blur(function(){
        $(this).validateEmpty({empty: 'red', nonEmpty: 'green'});
    });
});

jsFiddle Demo

答案 1 :(得分:1)

$('form.formclass input').blur(function() {
  if($(this).val() == '') { 
    $(this).css('background-color', 'red');
  } else {
    $(this).css('background-color', 'white');
  }
});

您需要更改选择器以表示您的表单字段

修改

演示:http://jsfiddle.net/xNsnk/

答案 2 :(得分:1)

我对Jquery Validate()插件运气良好:http://docs.jquery.com/Plugins/validation。然后,您只需使用“必需”类标记要验证的每个字段。注意:适用于jquery 1.5.2而不是1.6.2(这样可以省去一些痛苦)

答案 3 :(得分:1)

您可以通过为每个输入字段提供一个公共类来选择所有输入字段,并使用类选择器或简单地通过表单下的标记名称选择它们。试试这个

$(document).ready(function(){
    $("form").find("input, textarea").blur(function(){
        var $this = $(this);
        if($this.val() == ""){
            $this.css("backgroundColor", "red");
        }
        else{
            $this.css("backgroundColor", "white");
        }
    });
});

答案 4 :(得分:0)

您可以使用以下选项在所有输入元素上使用选择器进行检查:

$("input").blur( ....etc... )

或者,您可以为要测试的任何元素指定一个类,并检查该类的任何元素......

(".className").blur( ....etc.... )

答案 5 :(得分:0)

您应该尝试使用插件来简化验证需求。这个通常是一个很好的解决方案:http://docs.jquery.com/Plugins/validation

答案 6 :(得分:0)

使用jquery的each()函数迭代所有可用的输入框。

我再次知道它是一种for循环类型,但对我来说它更通用的jquery。