在提交过程中使用同步确认灯箱提交表格



问题我们需要在lightbox上提供便利来取消表单提交或提供额外信息以继续表单提交。

详细要求我有一个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");                   
    }
});

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

可能有不同的方法,但如果我是你,我会让发布按钮像一样简单

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

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

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

最新更新