【发布时间】:2011-05-21 10:34:59
【问题描述】:
我在表单中使用 rails 3 UJS。
在其中一个字段中,我的默认值为“ABC”。
如果用户没有更改字段,我不希望提交此值。
1) 这是一个可选字段,所以我不想阻止表单提交
2) 我可以劫持 ":before" 动作,但这对我来说似乎很不自然
这似乎是一个常见的用例 - 最优雅的方法是什么?
【问题讨论】:
标签: jquery html ruby-on-rails-3
我在表单中使用 rails 3 UJS。
在其中一个字段中,我的默认值为“ABC”。
如果用户没有更改字段,我不希望提交此值。
1) 这是一个可选字段,所以我不想阻止表单提交
2) 我可以劫持 ":before" 动作,但这对我来说似乎很不自然
这似乎是一个常见的用例 - 最优雅的方法是什么?
【问题讨论】:
标签: jquery html ruby-on-rails-3
如果您只想支持支持 HTML5 的浏览器,可以使用 <input> 标记的 placeholder 属性,而不是设置您不想提交的值。
<input type="text" placeholder="ABC" />
请记住,IE9 不支持此属性 (source)。
如果您不愿意,您可以使用表单的submit 事件来清除未更改的表单字段。
$("#my-form").submit(function(event) {
var input = $("#my-input-box");
if (input.val() === "ABC") {
input.val("");
}
});
您可能会发现您的用户有时想在框中输入“ABC”。您可以通过在内容更改时设置标志并检查上述代码中是否设置标志来解决此问题,而不是将当前值与默认值进行比较。
【讨论】: