6

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

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

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

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

提前致谢。

4

2 回答 2

12

只需将disabled属性设置为输入,它们将从表单提交中排除,无论输入字段是hiddenvisible。不同的 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

此外,您可以使用 generalbutton而不是 a submit,因此您可以在其上处理 click 事件,并且在该事件中您可以对值进行排除、验证、操作以及您喜欢的任何内容。

于 2012-05-27T16:05:56.960 回答
3

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

$(".hidden input").prop("disabled", true);
于 2012-05-27T16:02:35.793 回答