2009-09-23 4 views
0

에 실패 내 간단한 함수간단한 JQuery와 기능은 여기 사파리, 크롬과 IE

$('#save_button').click(function() { 
     $(this).attr('disabled',true).val('Saving'); 

     $('#new_record_form').ajaxForm({ 
     url: '/', 
     type: "POST", 
     dataType: "json", 
     beforeSubmit: function(){ alert('Boo!'); }, 
     success: function(){ alert('Hello!'); } 
     }); 
}); 

이 인터넷 익스플로러, 크롬이나 사파리 파이어 폭스에서 잘 작동하지만 아니다.

이 줄을 주석 처리하면 $(this).attr('disabled',true).val('Saving');가 작동하는 것처럼 보입니다.

이 문제가 발생하는 이유는 무엇입니까?

당신이 사용할 컨트롤을 수정할 수 없습니다 것으로 보인다

답변

1

html input이 '사용 안 함'으로 설정되어 있으면 입력을 전송할 수 없습니다. 속성을 '읽기 전용'으로 변경하십시오.

0

...

하지만 어쩌면 문제를 해결해야이 일을 :

$('#save_button').click(function() { 
     $(this).val('Saving'); 
     $(this).attr('disabled',true); 

     $('#new_record_form').ajaxForm({ 
     url: '/', 
     type: "POST", 
     dataType: "json", 
     beforeSubmit: function(){ alert('Boo!'); }, 
     success: function(){ alert('Hello!'); } 
     }); 
}); 
+0

다른 브라우저에서 작동하지 않는 문제를 해결했지만 고맙지 만 ... – schone

1

나는 보통 생산되고 <... disabled="disabled" .../>과 같은 HTML 결과 $(accessor).attr("disabled", "disabled"); 쓰기를 . 구문을 사용할 수 있는지 몰랐습니다. 이것을 시도해 볼 수 있습니까?

속성을 제거하려면 $(accessor).removeAttr("disabled");을 사용합니다.

+1

'true'가 더 적절한 값입니다. jQuery의'attr()'은 HTML 속성이 아닌 JavaScript/DOM 속성을 변경합니다 (jQuery가 차이점을 설명하기는하지만). 'disabled'는 부울 속성입니다. ''disabled ''로 설정하는 것은 비어 있지 않은 문자열이 불리언 문맥에서''true''를 강요하기 때문에 작동합니다. – bobince