Safari에서 양식을 제출 한 후 DOM에 스타일을 변경하는 데 문제가 있습니다. 누군가 가능한 아이디어라도 가지고 있습니까? Safari에서 예상되는 브라우저 동작입니까? 당신이 행동 문제를 볼 수 있도록 내가 아주 간단한 예를 설정 한Safari에서 양식을 제출 한 후 DOM에 스타일을 변경할 수 없습니다.
: http://jamesmichaelking.com/stackoverflow/safari/index.html
예는 입력 버튼을 찾습니다 이벤트를 제출 JQuery와 양식 자체에 HTML 양식을 게시 구성 배경을 빨간색으로 바꿉니다.
예 내가 예제의 HTML을, JS 및 CSS를 포함 시켰습니다
파이어 폭스와 크롬
에서 잘 작동합니다HTML
<form action="index.html" method="post">
<input type="submit" value="Submit me!">
</form>
CSS
body {
font-family: sans-serif;
color: #fff;
text-align: center;
}
input {
border: none;
padding: 20px;
font-size: 20px;
background: #036;
color: #fff;
}
JQUERY
,210$(function() {
$('form').on('submit', function() {
$(this).find('input').css('background', '#c00');
});
});
이상하게도, 나는 동일한 코드의 JSFiddle 만들었으며 그것을 잘 작동합니다 : http://jsfiddle.net/jamesking/q8WcV/
내가 맥에서 Safari 7을 사용하여 테스트하고 있습니다
많은
작동하지 않습니다. 문제는 스타일을 변경하면 페이지가 다시로드되어 제거된다는 것입니다. 'event.preventDefault(); '를 추가하여 버튼의 제출을 멈출 수 있습니다. 그러나 양식도 제출되지 않을 것입니다. ajax를 통해 양식을 제출해야하거나'? submited = true'와 같은 get 매개 변수를 추가해야합니다. 요청에서 이것을 발견하면 버튼 스타일을 설정하십시오. –
리디렉션 때문에 사파리가 정각에 UI를 다시 그리지 않는 것처럼 보입니다. 다음과 같은 타임 아웃을 사용하여 테스트 할 수 있습니다. http : // jsfiddle.net/q8WcV/3/ –
Nico O - 페이지가 새로 고침되었을 때 스타일이 재설정 될 것으로 기대하지만 양식 제출이 완료되기 전에 버튼이 빨간색으로 깜박일 것으로 예상합니다. Safari에서는 작동하지 않지만 다른 모든 브라우저에서는 작동하지 않습니다. do –