2015-06-04 51 views
0

我最近開始涉足jQuery中,我想出了這段代碼。
基本上每當「提交」發生在「order_form」它檢查是否textfields是空的,如果他們添加類「inputError」到任何文本字段爲空。
到目前爲止這麼好,現在對於這個例子我有2個空的文本框,當我提交「inputError」類時被添加到兩個文本框,當我填寫我的第一個文本字段並再次提交它仍然顯示「inputError」這兩個文本框,雖然我剛剛填寫一個在jQuery的'錯誤'類保持清理後說'錯誤'

的jQuery:

jQuery('form#order_form').submit(function() { 
    jQuery('form#order_form .error').remove(); 
    var hasError = false; 
    jQuery('.requiredFieldOrder').each(function() { 
     if(jQuery.trim(jQuery(this).val()) == '') {    
      jQuery(this).addClass('inputError'); 
      hasError = true; 
     } 
    }); 
    if(!hasError) {   
     jQuery("#submittedOrder").css('display','none'); 
     jQuery(".loadingImg").css('display','block'); 

     var formInput = jQuery(this).serialize(); 
     jQuery.post(jQuery('#submitUrl').val(),formInput, function(data){ 
      jQuery('form#order_form').fadeOut('fast', function() {   
       jQuery(this).before('<p class="thanks"><strong>Thank you for your order!</p>'); 
      }); 
     }); 
    } 
    return false; 
}); 

CSS:

.inputError{border:2px solid red !important;} 
+0

您可能需要在某處添加'removeClass('inputError')'。 – putvande

回答

0

只添加(addClass('inputError'))錯誤類,但是當有ISN」永遠不會真正刪除和e RROR。添加一個removeClass('inputError')它應該工作得很好:

... 
if(jQuery.trim(jQuery(this).val()) == '') {    
    jQuery(this).addClass('inputError'); 
    hasError = true; 
} else { 
    jQuery(this).removeClass('inputError'); 
} 
...