我从名为test.php
的文件中点击该表单,其中包含以下内容:
<form method="post" class="adminTM">
<input type="hidden" name="execID" value="<?=$_POST['exec']?>" />
<input type="hidden" name="fromTM" value="<?=$_POST['TM']?>" />
<input type="text" name="toTM" value="<?=$_POST['TM']?>" />
<input type="hidden" name="symbol" value="<?=$_POST['symbol']?>" />
<button class="submitTM">SUBMIT</button>
</form>
javascript看起来像这样:
$(function(){
$('.adminTMClick').live('click', function(e){
$(this).data('TM', this.innerHTML);
$.post('test.php', $(this).data(), function(data){
$(data).dialog({
modal: true,
beforeClose: function(){
$(this).remove();
}
});
console.log($('.adminTM'));
console.log($('.submitTM'));
});
});
$('.submitTM').live('click', function(e){
//originally had .adminTM with submit which failed
e.preventdefault();
alert('i am here');
return false;
});
});
如何在单击提交按钮时使表单不执行默认提交操作?
这是一个小提琴,基本上演示了我在做什么(由于jsfiddle的工作方式我不得不改变它):http://jsfiddle.net/maniator/tQVnV/show/
答案 0 :(得分:0)
您应该在表单上使用submit()
事件而不是提交时的click()
,因为按Enter键仍然会提交表单(绕过提交按钮)。
这应该可以正确地防止表单执行默认提交:
$('.adminTM').live('submit', function(e) {
// execute custom code
console.log("submit event fired");
// prevent default submit
return false;
});
jsFiddle:http://jsfiddle.net/bjorn/tQVnV/11/