无法阻止Jquery UI对话框中附加的表单按钮的默认操作

时间:2013-09-23 12:17:57

标签: javascript jquery forms

我正在通过Ajax将表单加载到jquery对话框窗口,但是当我在提交按钮上附加单击事件时,我无法阻止默认提交表单。当用户单击附加的表单提交按钮并且对话框未关闭时,我希望表单不提交。我遇到的问题是,我无法使用jquery选择此按钮,但是当我在firebug中运行它并且对话框已经打开时,脚本会起作用。 该表单是在一个类的admin.php中创建的 注意:表格在对话框窗口中正确加载,所以ajax很好,但我不能选择并将点击事件附加到表单峰值按钮,我不想使用对话框按钮。我希望表单按预期运行。然后,如果表单在普通网页上但不在对话框中,我可以阻止提交按钮操作 请帮助我成为编程新手 这是admin.php中的代码,当链接点击时,它通过Jquery 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');  
    });

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

尝试delegate

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

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