单击确定javascript警报提交表单

时间:2013-01-09 13:42:26

标签: javascript jquery

我有一个警告,如果他们添加了页面上已存在的元素,则会向用户显示。我有一个自动完成功能,如果用户选择的项目,我提醒他们该元素已被添加。但是,当我单击警报的确定时,它会提交我不想要的表单。这仅适用于特定情况。当我在自动完成元素上按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>

如何在不应该​​提交表单的时候提交表单,如何阻止这种情况发生?感谢

2 个答案:

答案 0 :(得分:0)

如果您不希望表单提交,除非“某事”,假设您已经在使用jQuery,请在表单中添加.submit()处理程序

答案 1 :(得分:0)

这是关注哪个元素的问题。你必须将你的keydown事件放在有问题的输入字段上。或者您在表单中添加submit()处理程序并做出相应的反应。

在窗口中预防它太晚了,因为它已经在焦点位于表单元素上时触发了提交(并且只有在那个气泡到窗口对象之后)。