我有一个包含选择器的表单。有一个“添加新”选项,当它被选中时,会使用 jquery 动态生成一个文本输入。现在我需要做的是在提交时检查是否存在文本输入,如果存在,则使用其中的信息更新表格并忽略选择器。我的问题是我应该在带有表单验证的模型中这样做吗?或者有没有更合适的方法?
选择器:
<%= builder.select(:line_id, ['~ Add New ~'] + Line.all.collect {|p| [p.title, p.id ]}, { :include_blank => 'select line' }, :id => "line_selector")
jQuery:
$(document).ready(function(){
$("#line_selector").on("change", function() {
if($(this).prop("selectedIndex") == 1) {
console.log($("#line_selector").prop("selectedIndex"));
var new_line_title = prompt('Please enter a line title');
if(!new_line_title.length) {
console.log("no entry");
return;
};
console.log(new_line_title);
$(this).after($(document.createElement("input"))
.attr("type", "text")
.attr("id", "text")
.attr("name", "text")
.attr("value", new_line_title));
};
});
});