2011-05-05 2 views
0

자바 스크립트를 통해 양식 HTML을 동적으로 생성하는 웹 페이지가 있고 jobJSONConfigurationFormdiv에 부어 있습니다. updateJobSummaryWithJSONObj() 기능은 페이지의 데이터 모델과 뷰 (다른 형태의 동적 생성을 업데이트jQuery "event.preventDefault()"이후의 모든 것을 무시한 Firefox 4.01

jobJSONConfigurationFormSubmit.live('click', function() { 
    event.preventDefault(); 
    var jobSummaryJSONTextareaValue = $("#jobSummaryJSONTextarea").val(); 
    var jobSummaryJSONObj = null; 
    try { 
     jobSummaryJSONObj = JSON.parse(jobSummaryJSONTextareaValue); 
    } catch(e) { 
     alert('This is not a valid JSON string. Please try again with a JSON-formatted string.'); 
    } 
    updateJobSummaryWithJSONObj(jobSummaryJSONObj); 
}); 

:

양식의 제출 요소 (ID jobJSONConfigurationFormSubmit)을 인수하기 위해, 나는 제출-사업부의 live 함수를 호출 HTML).

이 코드는 Chrome 11 및 10에서 모델과보기를 업데이트하지만 Firefox에서는 작동하지 않습니다. Firefox 4.01에서는 데이터 모델과 뷰가 업데이트되지 않습니다.

event.preventDefault(); 줄 앞에 alert('foo')을 추가하면 Firefox에서 경고 대화 상자를 표시하지만 나머지 기능에서는 코드가 실행되지 않습니다.

event.preventDefault(); 행 다음에 alert('foo')을 추가하면 Firefox는 경고를 표시하지 않거나 나머지 기능에서 코드를 실행합니다.

event.preventDefault()이 실패하는 원인은 Firefox에서 jQuery를 잘못 사용하면 무엇입니까? 조언 해 주셔서 감사합니다.

+1

이 가능한 아닌가? 이렇게하면'event' 선언이 필요 없습니다. –

+0

Chrome에서이 기능이 작동하는 유일한 이유는 'window.event'를 선택했기 때문입니다. –

답변

5

event은 바운드 처리기에 대해 자동으로 정의되지 않습니다. 그것은 첫 번째 주장입니다. 나는 당신이 의미 생각 :

jobJSONConfigurationFormSubmit.live('click', function(event) { 
    event.preventDefault(); 
    ... 

참고 : 나는 또한 event 아닌 다른 이름을 사용하는 것이 좋습니다 것입니다.

+0

고마워, 이것을 추가하는 것을 잊었다. 그것은 완벽하게 작동했습니다. –

+0

걱정할 필요가 없습니다. 때때로 우리는 모두 코드에 너무 가깝습니다. 좋은 담당자! –

1

코드로 판단하면 event은 정의되지 않았습니다. 첫 번째 줄로 jobJSONConfigurationFormSubmit.live('click', function(event) {을 시도해보십시오. 희망이 도움이됩니다!

1

시도 :; 'FALSE'반환에`당신`에서는 event.preventDefault()에서 변경에

jobJSONConfigurationFormSubmit.live("click", function(evt) { 
    evt.preventDefault(); 
}