event.preventDefault();在表单提交时没有在firefox上工作

时间:2014-04-02 17:13:14

标签: javascript jquery firefox javascript-events submit

我的表格如下

    <form name="attachment_form" id="id_attachment_form" class='class_attachment_form' action="/visit/something/" method="post" enctype="multipart/form-data">
        <table class="datagrid item_list" id="id_attachments">
            <tbody>
                    <td>
                        *Accession Number: <input id='acc_number' type="text" name="accession_number">
                    </td>                
            </tbody> 
            <input type="submit" value="Submit"/>

    </form>

<script>
$(document).ready(function () {
    $( "#id_attachment_form" ).submit(function( event ) {
        var accession_number = $('#acc_number').val();
        if (!accession_number)
            {
              alert("Please provide Accession Number");
              console.log('redirecting===>1');
              event.preventDefault();
              console.log('redirecting===>2');
            }
        else
            {    
                var url = '/visit/' + accession_number
                $(".class_attachment_form").attr("action", url);

            }
    });

});

</script>

因此,当我在firefox上尝试此操作并提交没有Accession Number值的表单时,它显示弹出窗口中有一些消息,但它也在表单操作属性event.preventDefault();中重定向到url不起作用,它不会停止表单重定向。

同样,当我在Google上尝试相同的程序时,奇怪的是甚至弹出窗口都没有显示。

为什么event.preventDefault();无效?为什么弹出窗口正在使用firefox而不是使用chrome?

2 个答案:

答案 0 :(得分:2)

因为您在提交表单时试图阻止默认,而不是在onClick上。所以最好使用return代表event.preventDefault()。虽然它在其他浏览器上工作不正确。

答案 1 :(得分:2)

而不是使用&#34; event.preventDefault()&#34;你应该使用&#34; return false&#34;。

干杯