소스 어디가 잘못되었는지 봐주세요 채택완료
체크박스에서 기타를 선택했을때 텍스트박스를 필수입력 하려고 합니다.
(체크박스이기 때문에 중복선택을 해도 기타를 선택하면 작동해야 합니다.)
아래와 같이 했는데 작동을 안하네요
어디가 문제가 되는지 알려주세요
감사합니다.
<input type="checkbox" name="choice[]" id="people1" value="선택1"></p>
<p> <input type="checkbox" name="choice[]" id="people2" value="선택2">
<input type="checkbox" name="choice[]" id="people3" value="기타">
<input type="text" name="choice_etc" id="choice_etc"></p>
<p> </p>
<p><script></p>
<p> if ($("#people3").is(':checked')) {
if ($("#choice_etc").val().trim() === '') {
alert("기타 내용을 적어주세요.");
$("#choice_etc").focus();
return false;
}
}</p>
<p></script></p>
<p>
답변 4개
</p>
<p>$('form').on('submit', function(e) {
// 체크박스 선택 여부 확인
if ($("input[name='choice[]']:checked").length === 0) {
alert("최소 한 개 이상의 항목을 선택해주세요.");
return false;
}</p>
<p> // '기타' 선택 시 텍스트박스 필수 입력 확인
if ($("input[name='choice[]']:checked").filter("[value='기타']").length > 0) {
if ($("#choice_etc").val().trim() === '') {
alert("기타 내용을 적어주세요.");
$("#choice_etc").focus();
return false;
}
}
});</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
</pre> <pre highlighter="hljs"> <code><script src="<a href="https://code.jquery.com/jquery-3.6.0.min.js"></script>" target="_blank" rel="noopener noreferrer">https://code.jquery.com/jquery-3.6.0.min.js"></script></a> <script> $(document).ready(function() { // 제출 버튼 클릭 이벤트 핸들러 $("#submitBtn").click(function(e) { // '기타' 체크박스가 선택되었는지 확인 var isOtherChecked = $("#people3").is(':checked'); // '기타' 입력란의 값 가져오기 및 공백 제거 var otherInputValue = $("#choice_etc").val().trim(); // '기타'가 선택되었고 입력란이 비어있는 경우 if (isOtherChecked && otherInputValue === '') { alert("기타 내용을 적어주세요."); $("#choice_etc").focus(); // 입력란에 포커스 이동 e.preventDefault(); // 폼 제출 방지 return false; } // 폼이 실제로 존재하는 경우 제출 로직 추가 가능 // 예: $("form").submit(); }); }); </script></code></pre> <p><code><label><input type="checkbox" name="choice[]" id="people1" value="선택1"> 선택1</label> <label><input type="checkbox" name="choice[]" id="people2" value="선택2"> 선택2</label> <label><input type="checkbox" name="choice[]" id="people3" value="기타"> 기타</label> <input type="text" name="choice_etc" id="choice_etc" placeholder="기타 내용을 입력하세요"> <button type="submit" id="submitBtn">제출</button>
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p><script></p>
<p> $("input[name='choice[]']:checked").each(function() {</p>
<p> if ($(this).val() === "기타") {</p>
<p> if ($("#choice_etc").val().trim() === '') {</p>
<p> alert("기타 내용을 적어주세요.");</p>
<p> $("#choice_etc").focus();</p>
<p> return false;</p>
<p> }</p>
<p> }</p>
<p> });</p>
<p></script></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
해당
if ($("#people3").is(':checked')) {
이 이벤트를 실행시 function이나 jquery로 무엇인가 해당 이벤트를 발생시켜야 하는데
현재는 이것을 실행시킬 function이나 실행시킬 연결고리가 없어서 해당 부분의 스크립트를 적용할수가 없습니다.
예를 들어
function chk_event(){
}
이런 이벤트 function 함수를 호출해서 처리하도록 이벤트를 걸어주셔야 해당 함수가 반응하던지 할겁니다.
소스를 다 적용해 드리면 좋겠지만 직접 공부도 하시고 왜 이렇게 되는지를 아셔야 할듯 해서
이렇게 남겨 놓습니다. 참고해 주세요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인