Jquery在选择框更改时禁用旧函数并执行新函数
我有两个功能 首先 第二Jquery在选择框更改时禁用旧函数并执行新函数,jquery,Jquery,我有两个功能 首先 第二 function advanced_validate() { $("#add_expense").validate({ rules : { expense : { required : true }, category : { required : true },
function advanced_validate() {
$("#add_expense").validate({
rules : {
expense : {
required : true
},
category : {
required : true
},
customer_name : {
required : true,
minlength : 3
},
customer_email : {
email : true
},
customer_address : {
required : true,
minlength : 5
}
},
submitHandler : function(form) {
// do other stuff for a valid form
$.post('add/add_expense_result.php', $("#add_expense").serialize(), function(data) {
$('#add_expense .message_outer').fadeIn('slow').html(data).delay(3000).fadeOut('slow');
});
$('#add_expense')[0].reset();
var first_category = $('#categories option:nth-child(1)').text();
$('#add_expense .customSelectInner').html(first_category);
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
var string_length = 5;
var result = "";
for (var i = 0; i < string_length; i++) {
var randomPos = Math.floor(Math.random() * chars.length);
result += chars.substr(randomPos, 1);
}
$('input.customerCode').val(result);
return false;
}
});
$('.existingcustomer').autocomplete({
source : 'suggest/suggest_customer.php',
select : function(event, ui) {
$('.customerId').val(ui.item.id);
$('.customerCode').val(ui.item.code);
$('.customerName').val(ui.item.name);
$('.customerEmail').val(ui.item.email);
$('.customerPhone').val(ui.item.phone);
$('.customerAddress').val(ui.item.address);
return false;
},
}).data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>").data("item.autocomplete", item).append("<a>" + item.name + " - " + item.address + "</a>").appendTo(ul);
};
$(".existingCustomer").live("click", function() {
$('input.customerName').removeClass('newcustomer');
$('input.customerName').addClass('existingcustomer');
$('input.customerCode').removeClass('newId');
$('input.customerCode').addClass('oldId');
$('.newCustomer').attr('checked', false);
$('#customer_details input').val('');
$('#customer_details textarea').val('');
$(".existingcustomer").autocomplete("enable");
})
$(".newCustomer").live("click", function() {
$('input.customerName').removeClass('existingcustomer');
$('input.customerName').addClass('newcustomer');
$('input.customerCode').removeClass('oldId');
$('input.customerCode').addClass('newId');
$('.existingCustomer').attr('checked', false);
$('#customer_details input').val('');
$('#customer_details textarea').val('');
$('input.newId').val(result);
$(".newcustomer").autocomplete("disable");
});
}
我的问题是,在选择框值更改为贷记或还款后,仍然可以正常运行\u验证功能 尝试使用:
var value $("#categories option:selected").text();
而不是:
var value = $(this).val();
摘自第页。您需要在html选择中设置选项值
或
更改js脚本:
var值=$categories选项:selected.text
请尝试此操作。显示HTML…它正在工作。请查看代码看起来不错,您一定在做一些我们看不到的事情,或者您误解了调用的内容。现在添加了整个函数和HTML。如果value='returning'{$'customer\u details.new'.hide;}其他,请查看此部分my jquery{$'customer\u details.new'.show;}此函数运行良好!仅probelm具有普通\u验证和高级\u验证功能。该功能不会更改。如果在文档准备就绪时删除普通\u验证功能。现在更改功能工作。@SAFEERN只需使用警报文本编写两个不同的函数。然后从选择框中选择值并检查警报是否出现!运气不好。$自定义er_details.new'.hide;或show函数正常工作。因此,请更改函数是否正常工作。但如果正常运行验证函数,则高级验证函数将不工作。
jQuery(document).ready(function() {
normal_validate();
$('#categories').change(function() {
var value = $(this).val();
if (value == 'repayment' || value == 'credit') {
$('#customer_details').show();
//i want disable normal_validate function
advanced_validate();
} else {
$('#customer_details').hide();
//i want disable advanced_validate function
normal_validate();
}
if (value == 'repayment') {
$('#customer_details .new').hide();
} else {
$('#customer_details .new').show();
}
});
});
var value $("#categories option:selected").text();
var value = $(this).val();
<option value="<?php echo $category; ?>"><?php echo $category; ?></option>