div에 라디오 버튼 그룹이 있습니다.이 라디오 버튼 그룹에는 다양한 텍스트 상자가 포함 된 형제 div가 있고, 아래에는 4 개의 레벨이 있습니다. 라디오 버튼 'false'가 선택되어 있으면 해당 그룹의 모든 텍스트 상자를 확인하고 텍스트 상자에 값이 있으면 경고를 팝업합니다.DOM 트래버스 위아래로
지금은 텍스트 상자의 값에 관계없이 'false'라디오 버튼에 대해 두 개의 경고를 표시합니다. 왜 '거짓'라디오 버튼에 대한 경고를 두배로 늘리는 지 모르겠지만 실제로는 텍스트 상자를 읽지 않는다고 확신합니다.
find() 메소드가 여러 레벨의 하위를 조사한다고 가정합니다.
EDIT - 5 개의 질문이 있으므로 전체 '질문'수업이 5 번 반복되며 제출 버튼을 클릭하면 각 질문을 확인해야합니다.
<div class="question">
<div class="radio-buttons">
<input type="radio" name="radios" value =" true" />Yes
<input type="radio" name="radios" value =" false" />No
</div>
<div class="label">List out the date, name & category....</div>
<div class="answer-container">
<fieldset class="answer-container-sub">
<div class="answer-group">
<div class="question-label">Name</div>
<div class="question-answer">
<input type="text" />
</div>
<div class="question-label">Name</div>
<div class="question-answer">
<input type="text" />
</div>
</div>
<div class="answer-group">
<div class="question-label">Name</div>
<div class="question-answer">
<input type="text" />
</div>
<div class="question-label">Name</div>
<div class="question-answer">
<input type="text" />
</div>
</div>
</fieldset>
</div>
</div>
<input type="submit" id="button" value="Click Me" />
jQuery를 ## 편집 해가 위의 HTML을 일치하도록 아래의 코드에서 클래스 이름을 변경하려면 여기
는 마크 업입니다. ##$("#button").on("click", function() {
$('input:radio').each(function() {
if ($(this).closest('.radio-buttons').find('input:checked').val() == "False") {
if ($(this).siblings('.answer-container').find('input[type=text]').val() != '') {
alert("You clicked no but a textbox has a value");
}
}
});
});
질문에서 DOM을 탐색하여 들여 쓰기가 너무 작아 지도록 편집 할 수 있습니까? –
마크 업과 코드가 관련이없는 것 같습니다. 어느 쪽이 잘못 되었습니까? –
죄송합니다. 코드에있는 이름에서 이름을 변경하여 따라하기 쉽고, 코드를 변경하는 것을 잊었습니다. – BattlFrog