1

问题我们需要在灯箱上提供功能以取消表单提交或提供额外信息以继续提交表单。

详细要求我有一个 HTML 表单。在提交表单之前,我们需要显示一个灯箱,向用户询问一些额外的信息。简而言之,我需要 Javascript 函数中的同步行为。我知道这不是预期的 JS 行为,但我也确信这是可能的,并且一定有人通过某种方式实现了它。我们怎么能这样做。

代码如下所示,希望能更好地解决问题。

//This is called when submit button is clicked.
$('.mbutton').bind('click', function(e){
    var subButton = e.target || e.srcElement || e.originalTarget;
    var value = subButton.id;

    //If submit button pressed.
    if (value == "Publish"){
        //custom JQuery plugin to open light box.
        $.siddlb('#puboptions',{});
        //Lightbox opens but soon form too submits and new page gets loaded. Requirements are, function must wait here until light box is closed.
    }

    //Below task should execute only if user provide required information in lightbox.
    finalize();
    try{
        if (value == "Publish"){
            var canvas = document.getElementById("imageView");
            var context = canvas.getContext("2d");
            var img     = canvas.toDataURL("image/png");
            document.getElementById("textimage").value = img;            
        }
        //$("#myaction").val(subButton.id);
        $("#myaction").val('Publish');
    }catch(e){
        $("#myaction").val("Cancel");                   
    }
});
4

1 回答 1

1

我猜你的发布按钮(顾名思义)是表单的提交按钮。

可能有不同的方法,但如果我是你,我会将发布按钮设置为简单的按钮

<button class="mbutton" id="publish">Publish</button>

点击它,在灯箱中做任何你想做的事情。只需在灯箱中放置另一个按钮,例如“继续”,然后单击它,通过 javascript 提交表单。

这是非常简单直接的解决方案,可能您正在寻找其他解决方案。如果您找到其他解决方案,请告诉我。

于 2012-08-29T08:14:14.137 回答