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

时间:2012-06-29 10:37:51

标签: javascript jquery validation

我正在验证我的表单中的必填字段,并希望将类“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" />

3 个答案:

答案 0 :(得分:0)

对于文本框,请使用:

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

答案 1 :(得分:0)

制作一个通用函数并重用它:

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

<强> DEMO

答案 2 :(得分:0)

$('.validate').bind('blur',function(){
    if (!$(this).val()){
        $(this).removeClass('standard_input');
        $(this).addClass('standard_input_error');
        return false;
    }
});

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