2013-05-28 2 views
0

에 추가 요소에 클래스를 추가 할 수 없습니다 것은 AJAX 요청에 의해 반환 된 다음과 같은 마크 업 한 I :jQuery를 - 동적으로 DOM

$(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'); 
    } 

}); 

오류가

<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를하다 :

Uncaught TypeError: Object has no method 'addClass'

이 유효성 검사를 추가하기 전에 알림을 보내고 문제가 무엇인지 잘 모릅니다.

+3

'name.addClass ('error');'어디에도 선언 된'name'을 보지 못했습니다 ... 'site_name'을 의미 했습니까 – tymeJV

+0

나는 그것을 믿지 않습니다, 2 일 연속으로 질문을했는데 오타가 있었기 때문입니다. 나는 미쳐 갈거야 .... 그걸 발견하고 내 불행에서 벗어나게 해줘서 고마워! – martincarlin87

+0

문제 없으므로 나중에 도와 드리겠습니다! : 가까운 투표 D – tymeJV

답변

1

name var이이 범위의 아무 곳에서나 선언 된 것처럼 보이지 않습니다.

이 범위 밖에서 선언 했습니까? 나는 아마도 당신이 원한다고 생각합니다 :

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

디버거를 단계별로 실행 했습니까? 아마도 name이 null이라는 것을 알게 될 것입니다 ...