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>