我正在使用 ExpressionEngine 和 SafeCracker 以及 Ajax(插件:jquery.form.js - http://jquery.malsup.com/form/)。
据我所知,SafeCracker 一次只允许更新一个条目。然而,UI / UX 需要显示列表。我已经通过逐项按需表格进行了概念验证。也就是说,单击每个条目旁边的特定编辑链接,jquery 片段会创建一个表单并显示一个提交按钮。单击“提交”,该单个条目就会更新。在单击“更新”链接之前,输入并不存在
如果可能的话,我更愿意做的是在页面重新设计时创建每个条目的非表单和表单版本,并使用某种切换来显示其中一个或另一个。再说一遍,可行。然后,当我单击“编辑”链接时,我会将必要的属性添加到输入中,以便读取条目的表单元素,但其他条目的其他(显示:无)元素将被忽略。我在想(大声地)如果我添加 attr("name", some-value) 就可以了。也就是说,没有名称的输入将被忽略。
是的,我可以测试一下,我会的。然而,即使它有效,我也不确定这是否是最佳实践和/或是否有更理想的方法来实现我的目标。我在这里寻求验证和/或额外的专业知识和意见。
提前致谢。
只需将
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
,因此您可以处理其上的单击事件,并在该事件中您可以对值进行排除、验证、操作以及您喜欢的任何操作。
您可以在服务器端放置
disabled
属性或通过 jQuery 设置属性:
$(".hidden input").prop("disabled", true);
如果不想禁用输入,可以将form属性设置为空字符串
<input name="myfield" form="" />