변경 이벤트가 텍스트 필드의 값을 확인하는 함수에 바인딩되어 있고 해당 유효성 검사 오류 메시지를 텍스트 필드 위의 DOM에 연결할 수있는 텍스트 필드가 있습니다. 관련이없는 라디오 버튼 중 하나를 클릭하여 변경 이벤트가 발생하면 클릭 한 라디오 버튼이 포커스를 얻지 만 사용자 및 사용자의 기대에 따라 체크되지 않습니다. 이것이 문제입니다.AJAX와 같은 시나리오에서 클릭 한 후 라디오 버튼을 선택 취소했습니다.
최종 시스템의 유효성 검사가 AJAX를 사용하여 서버 측에서 수행되지만 다음 코드는 AJAX가 문제와 관련이 없음을 보여줍니다. 나는, 나는 당신이 뭘 하려는지 다음과 같은 문제를 조금 미안했다있어
<html>
<head>
<STYLE type="text/css">
.highlighted { color: red; }
</STYLE>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
</head>
<body>
<span id="errors">
</span>
<label for="mytextfield">First, type something in this textfield</>
<input type="text" id="mytextfield" name="mytextfield"/>
<p>Second, click on one of these radio buttons</>
<INPUT TYPE="radio" NAME="binaryquestion" VALUE="Y" >Yes</>
<INPUT TYPE="radio" NAME="binaryquestion" VALUE="N" >No</>
<script type="text/javascript">
$(document).ready(function() {
//$("#mytextfield").change(validateTextField);
$("#mytextfield").change(spliceInTheValidationResultMessage);
});
function validateTextField() {
$.ajax({
url: 'http://www.google.com',
success: function(data) {
spliceInTheValidationResultMessage();
}
});
}
function spliceInTheValidationResultMessage() {
$("#errors").append("<p>Thank you for your input!</p>").addClass("highlighted");
alert("I expect the radio button that you clicked to become checked. However, close this dialog and you'll see that it will have gained the focus but is NOT checked!");
};
</script>
</body>
</html>
여기서 라디오 버튼 상태를 변경하려고하는 코드는 무엇입니까? 나는 그것을 볼 수 없다. – scunliffe
해당 코드가 없습니다. 페이지를 브라우저에로드하고 라디오 버튼 중 하나를 클릭하면 문제는 라디오 버튼이 선택되었는지 여부가 텍스트 필드에 무엇인가를 입력하지 않은 상태에서 조건부라는 것입니다. – user559496
문제 정의의 추가 개선 : 문제는 라디오 버튼이 선택되었는지 여부는 조건부로 텍스트 필드에 무언가를 바로 입력하지 않은 것입니다. – user559496