【问题标题】:what is the best way to disable a html element in ajax form?禁用 ajax 形式的 html 元素的最佳方法是什么?
【发布时间】:2014-01-10 20:56:17
【问题描述】:

我有一个在页面加载时被禁用的元素

<%= 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 中定义代码是没有意义的。

谢谢!

【问题讨论】:

  • 你是用jQuery的ajax方法提交表单数据吗?
  • 不,我正在使用 Rails 方式 :remote => true

标签: jquery ruby-on-rails ruby-on-rails-3


【解决方案1】:

您可能想要添加一个完整的回调来重新禁用输入元素。

我相信你会这样做:

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

我假设您启用输入元素,以便提交其值。作为启用然后重新禁用输入元素的替代方法,您可以使用两个输入元素:可见但永久禁用的输入元素和隐藏的输入元素。您总是会给它们相同的值,但只有隐藏的输入元素才会有“名称”属性。

【讨论】:

    猜你喜欢
    • 2014-05-12
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多