2010-04-21 5 views
1

값이있는 페이지에 버튼 태그가 있습니다.Jquery Apache - IE 문제

FF에서
$('.btn').click(function() { 
    var w = 'value = '+$(this).val()+'/text = '+$(this).html(); 
    alert(w); 
}); 

, 결과가 괜찮 아무 문제 (디스플레이 : 값 = 값/텍스트 = 쇼 값)

<button class='btn' value='value'>show value</button> 

내가이 jQuery 코드가있다.
IE8은 테스트 서버 및 프로덕션 서버와 다른 결과를 표시합니다. 테스트 서버는 표준 XAMPP 설치가있는 로컬 컴퓨터입니다. productionserver는 Apache, PHP 및 mysql을 사용하는 Linux 기반 서버입니다.

테스트 서버의 결과가 ok (FF와 같음) 일 때 프로덕션 서버의 결과가 좋지 않습니다 (value = show value/text : show value 표시).

오류를 일으키는 아파치라면 누구나 생각할 수 있습니다. val()의 사용에는 IE가 속성이 아닌 값으로 간주하기 때문에 몇 가지 문제가 있다는 것을 알고 있습니다.

문제는 jQuery를 val()에서 attr ('value')로 변경하는 것이 많은 작업을 종료한다는 것입니다.이 구현은 이미 많은 페이지에 있으며, 뭔가를 변경하는 것이 훨씬 쉬울 것이라고 생각합니다. 웹 서버에서.

+1

IE의 알려진 문제는 http://www.w3schools.com/tags/tag_button.asp를 참조하십시오. – Lazarus

답변

0

이것은 IE와 관련하여 알려진 클라이언트 측 문제이므로, 다른 브라우저와 버전으로 테스트하고 있는지에 대해 충분히 설명 할 수는 없습니다. 중요

From W3C:

: 당신은 HTML 형태로 버튼 요소를 사용하는 경우는, 다른 브라우저는 서로 다른 값을 제출합니다. Internet Explorer는 <button></button> 태그 사이에 텍스트를 제출하고 다른 브라우저는 값 속성의 콘텐츠를 제출합니다. input 요소를 사용하여 HTML 양식에 버튼을 만듭니다. 불행하게도이 당신에게 디스플레이를 제공하지 않습니다

<input type="submit" class='btn' value='value' /> 

이에서

(I 강력 추천 .attr('value') 제외) 일관된 동작을 얻을 수있는 가장 쉬운 방법은 당신의 버튼을 대체하는 것입니다 당신은 당신이 버튼과 동일한 효과를 얻을 수있는 프록시 버튼이 있다면 값, 그러나, 지저분한입니다하지만 IE 작업합니다 :

<input type="button" class='btnPoxy' value='show value' /> 
<input type="submit" class='btn' value='value' style='display: none;' /> 

jQuery를 이를 위해 :

$(".btnProxy").click(function() { 
    $(this).next(".btn").click(); 
});