我在這裏有一個表單驗證。我的文本框不允許使用Jquery驗證的特殊字符( - )。但問題是出價和rfq文本框中的驗證不起作用。它接受特殊字符並提交表單。Jquery刪除類和表單驗證
這是我的工作小提琴。 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
}
});
如果這些字段具有「強制」類別 - 他們所做的 - 您不需要驗證... – CBroe
您需要使用'&&而不是'||':if(bid ==「」&& bid.hasClass( 「強制」))'。 (閱讀:如果該字段是空的_and_它是強制性的。) –
哦,cmon,驗證和removeclass都需要。我該怎麼辦? – user3097736