2014-02-06 6 views
0

У меня есть форма проверки. Мое текстовое поле не позволяет использовать специальный символ, кроме (-), используя проверку JQuery. Но проблемы в том, что проверка в заявке и текстовое поле rfq не работает. Он принимает специальные символы и передает форму.Jquery Removeclass and Form Validation

Это моя рабочая скрипка. http://jsfiddle.net/mHCk7/1/

Помогите, пожалуйста?

jQuery(function($) { 
    var validation_holder; 

    $("form#register_form input[name='submit']").click(function() { 

    var validation_holder = 0; 
// /^[A-Za-z\s]+$/ 


     var rfq   = $("form#register_form input[name='n_rfq']").val(); 
     var rfq_regex = /^[0-9\-]+$/; // reg ex qty check 
     var bid    = $("form#register_form input[name='n_bid']").val(); 
     var bid_regex = /^[0-9\-]+$/; // reg ex qty check 
     var mode    = $("form#register_form select[name='n_mode']").val(); 
     var mode_regex  = /^[a-zA-Z ]+$/; // reg ex qty check 

     /* validation start */ 

if(bid == "" || bid.hasClass("mandatory")) { 
     $("span.val_bid").html("This field is required.").addClass('validate'); 
     validation_holder = 1; 
    } else { 
     if(!bid_regex.test(bid)){ // if invalid phone 
      $("span.val_bid").html("Integer Only is Allowed!").addClass('validate'); 
      validation_holder = 1; 

     } else { 
      $("span.val_bid").html(""); 
     } 
    } 

    if(rfq == "" || rfq.hasClass("mandatory")) { 
     $("span.val_rfq").html("This field is required.").addClass('validate'); 
     validation_holder = 1; 
    } else { 
     if(!rfq_regex.test(rfq)){ // if invalid phone 
      $("span.val_rfq").html("Integer Only is Allowed!").addClass('validate'); 
      validation_holder = 1; 

     } else { 
      $("span.val_rfq").html(""); 
     } 
    } 

     if(mode == "") { 
      $("span.val_mode").html("This field is Required.").addClass('validate'); 
      validation_holder = 1; 
     } else { 
      if(!mode_regex.test(mode)){ // if invalid phone 
       $("span.val_mode").html("Invalid Special Characters!").addClass('validate'); 
       validation_holder = 1; 

      } else { 
       $("span.val_mode").html(""); 
      } 
     }   

     if(validation_holder == 1) { // if have a field is blank, return false 
      $("p.validate_msg").slideDown("fast"); 
      return false; 
     } validation_holder = 0; // else return true 
     /* validation end */  
    }); // click end 

}); // jQuery End 



$('#txt1').change(function() { 
if ($(this).val() == 'NEGOTIATED' || $(this).val() == 'SHOPPING' || $(this).val() == '') { 
    $("#txt2,#txt3").val(''); 
    $("#txt2").removeClass("mandatory"); 
    $("#txt3").removeClass("mandatory"); 
} 
else if ($(this).val() == 'BIDDING') { 
    $("#txt3").val(''); 
    $("#txt3").removeClass("mandatory"); 
} 
else if ($(this).val() == 'RFQ') { 
    $("#txt2").val(''); 
    $("#txt2").removeClass("mandatory"); 
} 
else { 
    //here you can specify what to do if the value is NOT negotiated or SHOPPING 
} 
}); 
+0

В случае, если поля имеют обязательный параметр '' '' '' '' '' '' '' '' '' '' '' '' '' '_ valid_ ... – CBroe

+0

Вам нужно использовать' && 'вместо' || ':' if (bid == "" && bid.hasClass ("обязательный")) '. (Чтение: если поле пуст _ и_, оно обязательно.) –

+0

О, cmon, требуется как проверка, так и удаление. Что мне делать? – user3097736

ответ

0

На самом деле я считаю, что это проблема ошибок на

if(bid == "" || bid.hasClass("mandatory")) { 

любая попытка вернуть ложь после того, как эта точка игнорируется ... это потому, что ставка как Валу не HTML-элемент!

0

Я уверен, что ваша ошибка возникает здесь,

var bid = $("form#register_form input[name='n_bid']").val(); 

Но вы проверяете класс со значением ставки, как это,

bid.hasClass("mandatory") 

Проверить это link Я изменил код.

+0

не работает. Произошла ошибка – user3097736

+0

@ user3097736 Вы проверили эту ссылку http://jsfiddle.net/dhana36/mHCk7/3/ – dhana