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 に答える