单击并取消选中时,验证多个选择器

时间:2014-11-11 07:09:15

标签: javascript jquery

jQuery(function($){

    var nickname = $('#nickname');
    var email = $('#email');
    var email_match = $('#email_match');
    var password = $('#password');
    var birthday_day = $('#birthday_day');
    var birthday_month = $('#birthday_month');
    var birthday_year = $('#birthday_year');
    var gender_femal = $('#gender_female');
    var gender_femal = $('#gender_male');

    var error = $('.error');

    nickname.blur( function(){
        if (nickname.val() < 1) error.html('error')
    });
    nickname.click( function(){
        if (nickname.val() > 0) error.html('')
    });
});

现在这只适用于昵称选择器什么是检查所有选择器的最简单方法,而不复制粘贴相同的功能。

例如

blur/focus(function(){if (nickname || email || password < 0) error.html('error'); });

当我输入这个问题时,我发现最好的方法是复制这个函数,因为我想在值为空时显示错误。

但是我想听听专业人士的消息,我相信会有一个很好的方法来做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以将它们全部放在一个选择器中,如下所示:

var fields = $('#nickname, #email, #password, ...');

但如果你能用一些常见的东西来识别它们可能会更容易:

var fields = $('#some-container :input');

...或:

var fields = $('.form-fields');

一旦你通过某种方式确定了一组感兴趣的元素,你可以立即将事件处理程序绑定到所有元素:

fields.blur(function() {
   // 'this' will refer to the DOM node blurred, even though fields refers to all of them
   var field = $(this);
   if(field.val().length == 0)
      error.html('error');
});
相关问题