在单击和取消单击时验证多个选择器

Validate multiple selectors on click and unclick

本文关键字:单击 选择器 验证 取消      更新时间:2023-09-26
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'); });

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

但我喜欢从专业人士那里听到我相信会有一个好方法可以做到这一点。

您可以在一个选择器中定位它们,如下所示:

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');
});