【问题标题】:JQuery UI confirmation dialog $_POSTJQuery UI 确认对话框 $_POST
【发布时间】:2014-01-28 12:39:55
【问题描述】:

脚本是:

function cDelete() {
    $("#dialog-confirm").dialog({
        resizable: false,
        height: 240,
        modal: true,
        buttons: {
            "Delete item": function () {
                $(this).dialog("close");
                $('form#someform').submit();
            },
            Cancel: function () {
                $(this).dialog("close");
                return false;
            }
        }
    });
    return false; 
}

和表单元素:

<form id="someform" action="somefile.php" method="POST">
    <button name="delete" type="submit" class="cancel" onclick="return cDelete();">Delete</button>
    <input type='checkbox' class='toggle' value='$article_id' name='page-id[]'>
</form>

在 php 文件中,我检查如下数据:

if (isset($_POST['delete']) && isset($_POST['page-id'])){}

所以问题来了: 该脚本正确发送选中的复选框 ($_POST['page-id']) 的 POST,但它不发送按下按钮的 POST ($_POST['delete'])。好的,但只有当我输入表单隐藏输入时:input type="hidden" name="delete">.

我想在没有隐藏输入的情况下完成这项工作。我试图解决这个问题,但仍然没有结果。 也许有人可以帮助我?

第二个问题:脚本是否有可能在 onsubmit(form) 而不是 onclick(button) 上运行?

【问题讨论】:

  • 它不发送按钮值,因为使用对话框引入了异步性,因此实际上发送表单的不是单击按钮——您调用表单的submit 方法是。使用onsubmit 不会改变这一点。如果您不希望隐藏字段成为 HTML 的一部分,则可以动态插入它。
  • 好的。感谢您的回答。我不知道什么更好:动态插入或隐藏输入,但在这种情况下,我认为我选择什么并不重要。重要的是让它发挥作用。无论如何,我会尝试动态插入。 PS 我知道 onsubmit 不会改变这一点。我只是想使用 onsubmit 因为我认为验证表单比 onclick(有些人使用 enter)更好,尤其是当您的提交按钮或输入 [submit] 很少时。但在这种情况下,我只有 1 个,所以 enter 的工作原理与 click 完全一样,所以我认为我会继续使用 onclick。再次感谢

标签: jquery post jquery-ui-dialog


【解决方案1】:

您需要为按钮定义名称和值,这也会发送按钮的值

<button name="delete" type="submit" class="cancel" onclick="return cDelete();" value="Delete">Delete</button>

第二个问题看看这个

Jquery trap form submit()

【讨论】:

  • 抱歉,我没有指定我的表单声明。我会纠正它。它当然有行动和方法。就像我说的那样,我收到了选中复选框的 POST($_POST['page-id']),但我无法接收按下按钮的 POST($_POST['delete'])
  • @RysQ 你需要定义value 到按钮
  • 我已经为按钮定义了值,但它仍然无法正常工作。感谢链接
  • @RysQ 我测试过,它肯定会发送按钮值。还要检查你的结束标签是否有 form 元素,而不是 div
  • 我不知道你如何获得按钮价值。我刚刚只用脚本、表单和 print_r($POST) 制作了另一个文档。仔细检查表单元素的属性、类、ID。依然没有。但我想我已经在我的帖子下得到了答案。无论如何感谢您的回答。 Ps .. 是的,我不小心用div 关闭了表单(在此列表中)。我会改正的
猜你喜欢
  • 2013-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
相关资源
最近更新 更多