2014-01-10 28 views
0

我有當頁面被加載禁用ajax表單中的html元素的最佳方法是什麼?

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

於是,計數字段被再次使能[2],其被禁用的元件:

jQuery("form").submit(function() { 
    jQuery("#count").removeAttr("disabled"); 
}); 

那麼形式是由錯誤提交..然後再次啓用相同的字段。因爲我在提交表單之前啓用該字段[2]。當表單提交時返回相同的狀態是有意義的。所以現在被禁用的字段在提交發生之前被啓用,所以當表單返回驗證錯誤時它被顯示爲啓用。

我怎樣才能使它再次成爲禁用字段。由於表單是用ajax提交的,因此它不會加載整個頁面,因此在返回錯誤消息時,在document.ready中定義代碼沒有意義。

謝謝!

+0

您是否使用jQuery的ajax方法提交表單數據? – Jason

+0

不,我正在使用rails方式':remote => true' – Clone

回答

1

你會想添加一個完全的回調,重新禁用輸入元素。

我相信你做這樣的事情:

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

我假設你啓用輸入元素因此其價值將被提交。作爲啓用然後重新禁用輸入元素的替代方法,您可以使用兩個輸入元素:可見但永久禁用的輸入元素和隱藏的輸入元素。你總是會給它們相同的值,但只有隱藏的輸入元素會有一個「名稱」屬性。

相關問題