0

我有这个 javacsript 函数,它一直工作正常,但后来我向它添加了一些代码,除非我注释掉该代码,否则它会给出错误:

ReferenceError: updateListingForm is not defined

完整的代码是:

function updateListingForm(type) {

    if (jQuery('#voucher_value').length){
        var voucher_value = jQuery('#voucher_value').val();
    } else {
        var voucher_value = null;
    }

    if (jQuery('#category_id')val().length > 0 && isNaN(jQuery('#category_id').val()) == false) {
        var category_id = jQuery('#category_id').val();
    } else {
        var category_id = 0;
    }

    var loadUrl    = relative_path + 'ajax_files/change_listing_type.php'; 
    var dataObject = { type: type, category_id: category_id, voucher: voucher_value }

    getAjaxData(loadUrl, dataObject, 'GET', 'json')

        .done(function(response) {

            console.log(response);

            // Add/remove the listing field stuff
            jQuery('#listing_type').html(response.listing_type);

            // Input addl cat fee
            jQuery('#addl_cat_fee').html(response.addl_cat_fee);

        })

        .fail(function() {
            alert('There seems to have been a problem changing the listing type; please contact us if this continues to occur.');
        });

    // End    

}

如果我注释掉下面的代码它工作正常:

if (jQuery('#category_id')val().length > 0 && isNaN(jQuery('#category_id').val()) == false) {
    var category_id = jQuery('#category_id').val();
} else {
    var category_id = 0;
}

但是为了让它正常工作,如果注释掉上面的内容,我显然需要添加这一行:

var category_id = 0;

我的代码有什么问题导致它出现此错误?

4

2 回答 2

6

jQuery('#category_id')val()是语法错误。你想要jQuery('#category_id').val()

您会看到该错误updateListingForm is not defined,因为语法错误会暂停解析器并中止函数的创建。

尝试使用函数时出现函数未定义错误。当解析器尝试创建函数时,您还应该在控制台中看到先前的错误:在 Chrome、Firefox 或IE 中。该错误应该将您指向问题的确切位置。Uncaught SyntaxError: Unexpected identifierSyntaxError: missing ) after conditionExpected ')'

于 2013-07-11T16:57:22.107 回答
3

if 语句的第一个条件有错误。

jQuery('#category_id').val().length
                      ^------Missing this
于 2013-07-11T16:57:30.310 回答