出于某种原因,我的表单有一个提交按钮,表单上有一个id标记。当我进行测试以调用.submit函数时,表单就会关闭。以下是示例:http://overtheoceanfilms.com/admin/index.php(按下"操作"列中的按钮)
打开模态的链接(我从另一个加载到href标签中的页面加载表单。)
<a href="inc/editInquiry.inc.php?id=<?php echo $row['customer_id'];?>" data-reveal-id="modal_inquiry_editUser" data-reveal-ajax="true" id="<?php echo $row['customer_id'];?>"> <i class="fi-page-edit large"></i> </a>
这是我的模态:
<!--INQUIRY EDIT USER -->
<div id="modal_inquiry_editUser" class="reveal-modal" data-reveal aria-labelledby="modalTitle" aria-hidden="true" role="dialog">
<a class="close-reveal-modal" aria-label="Close">×</a>
</div>
这是jquery,非常简单:
$('#inquiry_editUserForm').submit(function() {
alert('test');
});
PHP表格(editInquiry.inc.php)
<form id="inquiry_editUserForm" method="post" action="">
....stuff inside form
<button type="submit"> Update </button>
</form>
答案 0 :(得分:0)
您应该使用“点击”事件,而不是“提交”。此外,如果您不想在单击时提交,则必须使用“preventDefault”禁止默认行为,如下所示
$('#inquiry_editUserForm').click(function(e) {
e.preventDefault();
alert('test');
});
提醒您click
事件是.on( "click", handler )
答案 1 :(得分:0)
如果您要提交表单但对话框必须保持打开状态,则应使用ajax提交表单。您可以将事件附加到自己的表单或提交按钮。
如果您要使用submit事件,请务必致电preventDefault()
或在结尾处返回false
以取消提交操作。
$('#inquiry_editUserForm').submit(function(evt) {
//your code goes here
$.ajax({
method: "POST",
url: "some.php",
data: $(this).serialize() //Encode form elements as a string for submission.
//If using serialize(), name attribute in form elements is required
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
return false; //return false will cancel the page to reload/redirect
//evt.preventDefault(); //or we can use preventDefault()
});
几乎相同的情况适用于提交按钮中的click
事件
我查看了您的网页来源,您很快就会将您的活动附加到,而且标识为inquiry_editUserForm
的元素尚未存在。因此,我建议您找到附加活动的正确位置,我认为这是在表单完全加载后。
答案 2 :(得分:-1)
您必须返回true才能继续操作。
这已经在这里得到解答:How to do something before on submit?