我的表格如下
<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?
答案 0 :(得分:2)
因为您在提交表单时试图阻止默认,而不是在onClick上。所以最好使用return代表event.preventDefault()。虽然它在其他浏览器上工作不正确。
答案 1 :(得分:2)
而不是使用&#34; event.preventDefault()&#34;你应该使用&#34; return false&#34;。
干杯