1

我正在通过 Ajax 将表单加载到 jquery 对话框窗口,但是当我在提交按钮上附加单击事件时,我无法阻止表单的默认提交,即。当用户单击附加的表单提交按钮并且对话框没有关闭时,我希望表单不提交。遇到的问题是,我无法使用 jquery 选择此按钮,但是当我在 firebug 中运行它并且对话框已经打开时,脚本会起作用。表单是在 admin.php 中从类 NB 中自然创建的:表单在对话框窗口中正确加载,因此 ajax 很好,但我无法选择单击事件并将其附加到表单峰会按钮,我不想使用对话框按钮. 我希望表单按预期运行。然后,

<form action="process.php" method="post" id="edit_form">   
<input type="submit" name="event_submit" value="Create" />
<a href="./">cancel</a>
</fieldset>
</form>

我也不能阻止单击取消链接时的默认操作。这是加载 admin.php 的 jquery 代码

这是防止表单提交按钮的默认操作起作用的代码

$("#edit_form input[type=submit]").on("click",function(event){
        event.preventDefault();         
        alert('You clicked a button');  
    });
4

3 回答 3

3

您需要使用事件委托来确保按钮事件在由 jQuery UI 动态创建时被绑定:

$(document).on("click","#edit_form input[type=submit]", function(event){
        event.preventDefault();         
        alert('You clicked a button');  
    });

查看.on的文档,其中详细解释了该概念。

于 2013-09-23T12:21:25.430 回答
0

尝试这个:

$(document).on("click", "#edit_form input[type=submit]",function(event){
    event.preventDefault();         
    alert('You clicked a button');  
});
于 2013-09-23T12:22:07.853 回答
0

尝试委托

附加的 DOM 对象也会有事件。

$(body).delegate("#edit_form input[type=submit]","click",function(event)
{
        event.preventDefault();         
        alert('You clicked a button');  
});
于 2013-09-23T12:23:52.507 回答