如果用户添加页面上已经存在的元素,我会向用户显示一个警报。我有一个自动完成功能,如果用户选择的项目我会提醒他们该元素已被添加。但是,当我单击警报的确定时,它会提交我不想要的表单。这只发生在特定情况下。当我在自动完成元素上按 enter 时会发生这种情况,如果该元素存在,我会发出警报。然后,如果我在表单提交的警报上单击确定!我有防止输入提交表单的代码。这是我的代码:
$(window).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
$(".autocomp_centers").autocomplete({
serviceUrl:'/suggest_centers',
maxHeight:400,
width:252,
params: {country: $("#country").val() },
minChars:2,
onSelect: function(value, data){
var ids = [];
$("#sister-centers-list > li").each(function(index, value){
ids.push($(value).attr('class'));
});
if ($.inArray("center-"+data, ids) == -1){
$("#hidden-ids").append('<input type="hidden" name="center_ids[]" value="' + data +'" class="center-' + data + '"/>');
$('#sister-centers-list').append('<li class="center-' + data + '">' + value + ' <a href="#sister-center" class="remove-center-before-save" id="' + data + '">Remove</a></li>');
}else{
alert("Sister center has already been added.");
}
$("#sister-search").val("");
}
});
这是导轨形式:
<%= form_for @center, :url => center_update_sister_centers_path(@center) do |f| %>
<div class="field" style="margin-top:10px;">
<%= f.submit 'Save', :class => "btn purple-button" %>
</div>
为什么不应该提交表单,我该如何阻止这种情况发生?谢谢