【问题标题】:modal confirmation - form not submitted if ok is clicked模态确认 - 如果单击确定,则未提交表单
【发布时间】:2012-09-11 22:24:46
【问题描述】:

我在页面上有乘法表格(自动生成)。我要求用户确认删除记录。如果用户单击否,模式对话框将关闭并且没有任何反应,但是如果他单击是按钮,则不会再次发生任何事情。有人可以帮忙吗?

代码如下:

 <input type="submit" value="Click me" class="button" />

 <div id="modal">
<div id="heading">
    Record will be deleted! Please Confirm.
</div>

<div id="content">
    <p>Record will be deleted! This operation can't be undone. <br />Are you sure?</p>

    <input type="button" onclick="return true;" class="button green close" value="Yes"></button>
    <input type="button" onclick="return false;" class="button red close" value="No"></button>

</div>

$('.oneUser').on('submit',function(e){
    $('#modal').reveal({ 
        animation: 'fade',                   
        animationspeed: 600,                       
        closeonbackgroundclick: true,           
        dismissmodalclass: 'close'    
    });
    return false;
});

【问题讨论】:

  • 我猜这与提交函数返回 false 有关。这通常是防止表单提交的好方法。
  • 嗨尼克。去掉 reutrn false 后,无论按下哪个按钮,无论是 false 还是 true,表单都会以静默方式提交,甚至不会触发模态对话框。
  • 更新了我的回复,然后看到您对以下答案的评论。您能否详细说明页面的结构,特别是 <form/> 的分类?元素和孩子?
  • 如果我们能在聊天中见面就太好了,因为这很复杂。页面是使用 codeigniter 创建的,并显示 users 表,其中显示了用户。为每个用户创建表单,因此可以对其进行编辑或删除。

标签: jquery modal-dialog


【解决方案1】:

已更新,现在使用A fiddle!

更新的标记

<form>
    <input type="submit" value="Click me" class="button" id="submitButton" />
</form>​
  • 已删除对话框标记。
  • 包含表单标记。

更新脚本

var confirmDelete = $('<div></div>')
    .html('Record will be deleted! This operation can\'t be undone. <br />Are you sure?')
    .dialog({
        autoOpen: false,
        title: 'Record will be deleted! Please Confirm.',
        buttons: {"Yes": function() { 
                      $(this).dialog("close"); 
                      $('form').submit();
                 }, "No": function() {
                      $(this).dialog("close");
                 }
        }
    });  
$('#submitButton').on('click', function(e){
    e.preventDefault();
    $(confirmDelete).dialog('open');
});
  • 使用按钮的点击事件而不是表单的提交事件。
  • 实现对话框like this guy did it
  • 是和否选项将关闭对话框,单击“是”也将调用$('form').submit();

【讨论】:

  • 不,评论返回 false,表单提交时没有显示模式对话框。它只是默默地删除记录。
  • 尼克,添加代码后,表单被静默提交,并删除记录而不调用对话框。我添加了:submit#submitButton,但没有任何结果。
  • console.log 显示以下错误:Uncaught TypeError: Object [object Object] has no method 'dialog'
  • #submitButton 引用 ID 为“submitButton”的控件,因此您应该使用适合您的应用程序的选择器对其进行更新。关于 console.log 错误,创建一个小提琴来重现您遇到的问题。
  • 我现在将尝试创建一个小提琴,即使我不知道该怎么做。在我再次复制代码后,我现在没有看到任何错误。在我关闭 chrome 中的控制台后,单击按钮,我会看到对话框。但是在我刷新页面偶数次后,表单再次静默提交。
猜你喜欢
  • 1970-01-01
  • 2011-10-17
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
相关资源
最近更新 更多