【问题标题】:How can I manipulate a form / inputs to be ignored when a form is submitted提交表单时如何操作要忽略的表单/输入
【发布时间】:2012-05-27 15:52:49
【问题描述】:

我正在使用 ExpressionEngine 和 SafeCracker 以及 Ajax(插件:jquery.form.js - http://jquery.malsup.com/form/)。

据我所知,SafeCracker 一次只允许更新一个条目。但是,UI / UX 需要显示一个列表。我已经通过按需输入表单证明了一个条目。也就是说,单击每个条目旁边的特定编辑链接,jquery 的 sn-p 会创建一个表单,同时显示一个提交按钮。单击提交,该单个条目将更新。在单击更新链接之前,输入不存在

如果可能的话,我更愿意做的是在页面被重新渲染时创建每个条目的非表单和表单版本,并使用某种切换来显示一个或另一个。再次,可行。然后,当我单击编辑链接时,我会将必要的属性添加到输入中,以便读取条目的表单元素,但其他条目的其他(显示:无)元素将被忽略。我在想(大声),如果我添加 attr("name", some-value) 会起作用。也就是说,没有名称的输入将被忽略。

是的,我可以测试这个,我会的。但是,即使它有效,我也不确定这是否是最佳实践和/或是否有更理想的方式来实现我的目标。我在这里寻找验证和/或其他专业知识和意见。

提前致谢。

【问题讨论】:

    标签: jquery-ui jquery jquery-selectors expressionengine


    【解决方案1】:

    只需将disabled 属性设置为输入,它们将从表单提交 中排除,无论输入字段是hidden 还是visible。不同的 jQuery 方法,如 submit()serialize() 遵循 HTML 4 规范并排除表单的所有禁用控件。所以一种方法是设置

    $('your_input').prop('disabled', true);
    

    或,

    $('your_input').attr('disabled', 'disabled');
    

    查看以下链接:

    http://www.w3.org/TR/html401/interact/forms.html#successful-controls

    另外,您可以使用通用的button 而不是submit,这样您就可以处理点击事件,并且在该事件中您可以对值进行排除、验证、操作以及任何您喜欢的操作。

    【讨论】:

    • 感谢有关链接的更多详细信息。大大的帮助。
    【解决方案2】:

    您可以在服务器端放置disabled 属性或通过jQuery 设置属性:

    $(".hidden input").prop("disabled", true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      相关资源
      最近更新 更多