2014-01-10 2 views
0

는 I 페이지이어서 ajax 양식에서 html 요소를 사용하지 않도록 설정하는 가장 좋은 방법은 무엇입니까?

<%= select_tag "count", get_count(local_trial_type).html_safe, :disabled => true %>

로드 된 카운트 필드는 [2]에 다시 활성화 될 때 비활성화 된 요소가 :
jQuery("form").submit(function() { 
    jQuery("#count").removeAttr("disabled"); 
}); 

이어서 폼이 에러에 의해 제출된다 .. 같은 필드가 다시 활성화됩니다. 나는 양식을 제출하기 직전에 현장을 활성화하기 때문에 [2]. 그리고 양식을 제출할 때 동일한 상태가 반환된다는 것은 의미가 있습니다. 이제 비활성화 된 필드는 제출이 발생하기 바로 전에 활성화되므로 양식이 유효성 검증 오류와 함께 되돌아 왔을 때 활성화 된 것으로 표시됩니다.

어떻게 다시 사용할 수없는 필드로 만들 수 있습니까? 양식이 아약스와 함께 제출되기 때문에 전체 페이지가로드되지 않으므로 오류 메시지가 나타나면 document.ready에 정의 된 코드가 필요하지 않습니다.

감사합니다.

+0

jQuery의 ajax 메소드를 사용하여 양식 데이터를 제출하고 있습니까? – Jason

+0

아니요 레일스 방식으로 사용하고 있습니다': remote => true' – Clone

답변

1

입력 요소를 다시 비활성화하는 완전한 콜백을 추가하려고합니다.

난 당신 같은 것을 할 생각 :

jQuery('form').bind('ajax:complete', function() { 
    jQuery("#count").attr('disabled', 'disabled'); 
}); 

나는 그것의 값이 제출됩니다 있도록 입력 요소 수 있도록 가정합니다. 입력 요소를 활성화 한 다음 다시 비활성화하는 대신 입력 요소와 숨겨진 입력 요소라는 두 개의 입력 요소를 사용할 수 있습니다. 그들에게 항상 동일한 값을 주겠지 만 숨겨진 입력 요소 만 "name"속성을 갖습니다.

관련 문제