在 jQuery 中组合验证函数并替换类名

combine validation functions in jquery and replace class name

本文关键字:替换 函数 验证 jQuery 组合      更新时间:2023-09-26

我正在验证我的表单的必填字段,并希望将类"standard_input"替换为类"standard_input_error",但我的以下代码不起作用。另外,是否可以组合函数,这样我就不需要为每个需要验证的 id 编写一个函数(有些文本字段不需要验证,所以我不能将其用于整个表单)。提前谢谢。

$('#firstname').blur(function()
{
    if( !$(this).val() ) {
          $(this).addClass('standard_input_error');
    }
});

Firstname * <input type="text" id="firstname" name="firstname" class="standard_input"> 
Last Name*  <input type="text" id="lastname" name="lastname" class="standard_input">
another   * <input type="text" id="another" name="another" class="standard_input"> 
another 2   <input type="text" id="another2" name="another2" class="standard_input">
Field      * <input type="text" id="fieldb" name="fieldb" class="standard_input"> 
Blah blah   <input type="text" id="blah" name="blah" class="standard_input">
Checkbox 1* <input type="checkbox" checked="checked" id="cbox1" name="cbox1" />
Blah bla 1 <input type="checkbox" checked="checked" id="blabla" name="blabla" />
Blee blee1* <input type="checkbox" checked="checked" id="blee" name="blee" />
bloblo 1   <input type="checkbox" checked="checked" id="blo" name="blo" />
$('.validate').bind('blur',function(){
    if (!$(this).val()){
        $(this).removeClass('standard_input');
        $(this).addClass('standard_input_error');
        return false;
    }
});

其中"validate"是应用于需要验证的输入字段的类

对于文本框,请使用以下命令:

$('form').find('input[type=text]').each(function(){
    if ($(this).val() == ''){
        $(this).removeClass('standard_input').addClass('standard_input_error');
        return false;
    }
});

创建一个泛型函数并重用它:

$('form input[type="text"]').blur(myValidation);
function myValidation() {
  if( !$.trim( this.value) ) {
      $(this).removeClass('standard_input').addClass('standard_input_error');
  } else {
      $(this).removeClass('standard_input_error');
  }
}

演示