하나의 필드 형식 (텍스트 입력 및 제출 버튼)이 있습니다. 양식 코드는 다음과 같습니다.css/javascript 요소가 true를 반환해야하는 경우 false를 반환합니다.
JavaScript를 사용하면 텍스트 입력란에 텍스트가 입력되면 제출 버튼을 클릭 할 수 없어야합니다. 필드에 텍스트가 없으면 클릭 할 수 있어야합니다. 나는 자바 스크립트를 사용하여 버튼 추가 또는 비활성화 클래스를 제거하거나 다시 넣는 중입니다. 여기에 자바 스크립트입니다 :
(function($){
$(document).on('focusin', '#resume-field', function() {
$(this).parents().find('.button-add-disabled').removeClass('button-add-disabled');
}).on('focusout', '#resume-field', function(){
if(this.value==' '||this.title==this.value) {
$(this).parents().find('.button-add').addClass('button-add-disabled');
} else {
$(this).parents().find('.button-add').removeClass('button-add-disabled');
}
});
$('.button-add-disabled').click(function(){
return false;
});
}(jQuery));
그리고 여기에 CSS입니다 : 기대와 자바 스크립트가 작동으로
.button-add { width: 49px; height: 28px; border: solid 1px #8c8c8c; display: block;
font-size: 11px; line-height: 28px ; color: #fff; text-align: center;
font-family: 'Ubuntu', sans-serif; transition: none; margin: 0 0 0 auto;
border-radius: 3px; }
.button-add:hover { text-decoration: none;
-webkit-transition:none;
-moz-transition:none;
-ms-transition:none;
-o-transition:none;
transition:none;
}
.td80 .button-add { margin-left:35px !important; }
.button-add-disabled { background: url(/assets/add-specialities-disabled.png)
repeat-x 0 0; box-shadow: 0 0 0 0; margin-left:35px; }
.button-add-disabled:hover { background: url(/assets/add-specialities-disabled.png)
repeat-x 0 0; box-shadow: 0 0 0 0; }
클래스가 변화하고있다. 그러나 어떤 이유로 인해 .button-add-disabled가 form 요소에 적용되지 않더라도 form 요소는 여전히 false를 반환하므로 제출하지 않습니다. javascript에 의해 "button-add-disabled"가 제거되면 양식을 제출해야합니다. 서버 로그를 볼 수 있습니다. 내가 자바 스크립트에서 라인을 제거하면 "반환 : false", 양식 작동, 그래서 양식 자체가 작동 알아요. 나는 자바 스크립트에 뭔가 잘못되었다고 확신한다. 어떤 아이디어?
감사합니다. @meager. 나는 혼란 스럽다. 왜 "제쳐두고"코드가 잘못 되었는가? 또한, 나는 이것과 관련된 또 다른 스택 오버 플로우 질문을 게시했다 : http://stackoverflow.com/questions/21053537/javascript-stops-working-when-switching-from-text-field-to-select – Philip7899