我有两个输入,都使用数据库中的相同字段。它们之间的区别很简单,一个是文本输入,另一个是用户可以从下拉列表中选择一些东西。可能看起来像这样:
= f.input :age, :label => false, input_html: {class: "textfield"}
= f.input :age, :label => false, input_html: {class: "dropdown"}, collection: [1,2,3]
在这种情况下,只有第二个输入才会发送信息。 我的问题是:如何防止输入发送任何内容而不将其从HTML中删除? (我的目的是启用用户选择选项“自定义年龄”,这将使他们能够填充字段,以及自定义值。棘手的部分是输入必须始终存在)
答案 0 :(得分:2)
如果禁用输入,则在提交表单时不会发送其值。因此,您可以在表单上使用onSubmit
事件在提交表单之前禁用正确的输入。
使用jQuery,它看起来像这样:
$('form').on('submit', function() {
var textInput = ...;
var dropdownInput = ...;
if (textInput.val() == '') {
textInput.prop('disabled', true);
} else {
dropdownInput .prop('disabled', true);
}
});