2013-05-28 1 views
0

я следующая разметка возвращаемой-запрос AJAX:JQuery - Невозможно добавить класса к элементам динамически добавляемых в DOM

<form id="quotation-form" name="quotation-form" action="" method="POST"> 
    <label for="site-name">Site Name:</label> 
    <input type="text" id="site-name" name="site-name" /> 

    <label for="postcode">Site Postcode:</label> 
    <input type="text" id="postcode" name="postcode" /> 

    <label for="bandwidth-requirement">Bandwidth Requirement:</label> 
    <select id="bandwidth-requirement" id="bandwidth-requirement"> 
     <option value="10" selected>10Mb</option> 
     <option value="20">20Mb</option> 
     <option value="30">30Mb</option> 
    </select> 

    <input type="submit" name="quotation-form-submit" id="quotation-form-submit" value="Get Quotation" /> 

</form> 

JQuery

$(document).on("submit", "#quotation-form", function() { 
    // cache form input id's 
    var site_name    = $('#site-name'); 
    var postcode    = $('#postcode'); 
    var bandwidth_requirement = $('#bandwidth-requirement'); 

    var valid = 1; 

    // validate form input values 
    if (site_name.val() == '') { 
     name.addClass('error'); 
     valid = 0; 
    } else { 
     site_name.removeClass('error'); 
    } 

    if (postcode.val() == '' || !checkPostcode(postcode.val())) { 
     postcode.addClass('error'); 
     valid = 0; 
    } else { 
     postcode.removeClass('error'); 
    } 

    if (bandwidth_requirement.val() == '') { 
     bandwidth_requirement.addClass('error'); 
     valid = 0; 
    } else { 
     bandwidth_requirement.removeClass('error'); 
    } 

}); 

Ошибка:

Uncaught TypeError: Object has no method 'addClass'

Я пробовал n перед добавлением этой проверки, и она отлично работает, поэтому не уверен, в чем проблема.

+3

'name.addClass ('error');' Я не вижу 'имя', объявленного где-нибудь ... вы имели в виду' site_name' – tymeJV

+0

Я этому не верю, два дня подряд я задал вопрос, и это из-за опечатки. Я сойду с ума ... Большое вам спасибо за то, что вы заметили это и выгнали меня из моих страданий! – martincarlin87

+0

Без проблем, рад, что смогу помочь! : D – tymeJV

ответ

1

У вас, похоже, нет name var, объявленного в этой области.

У вас есть это объявление вне этой сферы? Думаю, вы, вероятно, захотите:

if (site_name.val() == '') { 
    site_name.addClass('error'); 
    valid = 0; 
} else { 
    site_name.removeClass('error'); 
} 

Вы прошли через свой отладчик? Вероятно, это обнаружило бы, что name имеет значение null ...