我有一个在加载页面时被禁用的元素
<%= 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 :(得分:1)
您可能希望添加一个重新禁用输入元素的完整回调。
我相信你会这样做:
jQuery('form').bind('ajax:complete', function() {
jQuery("#count").attr('disabled', 'disabled');
});
我假设您启用了input元素,因此将提交其值。作为启用然后重新禁用输入元素的替代方法,您可以使用两个输入元素:可见但永久禁用的输入元素和隐藏的输入元素。你总是给它们相同的值,但只有隐藏的输入元素才会有“name”属性。