代码之家  ›  专栏  ›  技术社区  ›  User

从引导对话框提交时未传递Struts1处理程序参数

  •  0
  • User  · 技术社区  · 10 年前

    我有一个工作struts1调度操作和一个表单,它有两个提交按钮,它们有参数和值,用值调用方法名。 嗯,没有问题。

    但当点击删除按钮时,我想用引导对话框确认。

    $('.btnDelete').on('click', function(e){
            var $form=$(this).closest('form');
            e.preventDefault();
            $('#confirm').modal({ backdrop: 'static', keyboard: false })
            .one('click', '#delete', function (e) {
                var sectorId = $(this).parent().parent().children()[0].innerHTML;
                var input = document.createElement("input");
                input.setAttribute("type", "hidden");
                input.setAttribute("name", "sectorId");
                input.setAttribute("value", sectorId);
                document.getElementById("sectorForm").appendChild(input);
                $("#sectorForm").submit();
            });
        });
    

    在这里 e.preventDefault() 需要停止表单提交。 当从对话框中单击删除按钮时,将传递一个隐藏参数,并提交表单。但服务器显示以下错误消息。

    HTTP状态500-请求[/SectorManagement]不包含名为“action”的处理程序参数。这可能是由标签文本中的空白引起的。

    请注意,删除引导对话框时没有问题。

    1 回复  |  直到 7 年前
        1
  •  0
  •   User    10 年前

    解决方案是再添加一个名为action和value的添加隐藏参数。

    $('.btnDelete').on('click', function(e){
        var $form=$(this).closest('form');
        e.preventDefault();
        $('#confirm').modal({ backdrop: 'static', keyboard: false })
        .one('click', '#delete', function (e) {
            var sectorId = $(this).parent().parent().children()[0].innerHTML;
            var input = document.createElement("input");
            input.setAttribute("type", "hidden");
            input.setAttribute("name", "sectorId");
            input.setAttribute("value", sectorId);
            document.getElementById("sectorForm").appendChild(input);
    
            input = document.createElement("input");
            input.setAttribute("type", "hidden");
            input.setAttribute("name", "action");
            input.setAttribute("value", delete);
            document.getElementById("sectorForm").appendChild(input);
            $("#sectorForm").submit();
        });
    });
    

    我不知道,但还有更好的解决办法。 将等待您的答案。