如何在提交表单时操纵要忽略的表单/输入

时间:2012-05-27 15:52:50

标签: jquery-ui jquery jquery-selectors expressionengine

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

我能说的最好,SafeCracker一次只允许更新一个条目。但是,UI / UX需要显示列表。我通过入门点播表格获得了概念证明。也就是说,单击每个条目旁边的特定编辑链接,一个jquery片段创建一个表单并显示一个提交按钮。单击“提交”,单个条目将更新。在单击“更新”链接之前,输入不存在

如果可能的话,我希望做的是在页面重新编号时创建每个条目的非表单和表单版本,并使用某种切换来显示其中一个。再一次,可行。然后,当我单击编辑链接时,我将向输入添加必要的属性,以便读取条目的表单元素,但忽略其他条目的其他(display:none)元素。我(大声地)思考如果我添加attr(" name",some-value)可以工作。也就是说,将忽略没有名称的输入。

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

提前致谢。

2 个答案:

答案 0 :(得分:11)

只需将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,因此您可以在其上处理点击事件,并且在该事件中您可以对值进行排除,验证,操作以及任何事情你喜欢。

答案 1 :(得分:3)

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

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