在提交期间使用同步确认灯箱提交表单

时间:2012-08-29 07:09:17

标签: javascript jquery html forms

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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