0

我的用户可能使用 IE7,我想避免使用提示功能。我有使用提示符的工作代码,但不确定替换它的好方法。

我的使用要求是这样的。用户单击图像按钮,然后必须确定/取消提示。如果按下 OK,则请求分配给 RemovePalletReference 以在后面的代码中使用的 Reference。

<asp:imagebutton id="ibRemoveFromPallet" runat="server" ImageUrl="../Images/Icons/removefrompallet.gif" OnClientClick="return ConfirmReroute();"></asp:imagebutton>                   
<asp:HiddenField ID="RemovePalletReference" runat="server" value="" ></asp:HiddenField>

您可以在上面看到我首先调用 ConfirmReroute() ,这是以下 js 函数。

    function ConfirmReroute() 
    {
        if (confirm("Confirm Remove Unit From Pallet") == true) 
        {
            var pmt;
            do {
                pmt = prompt("Please Enter a Reference:", "");
            }
            while ( pmt == null || pmt.length < 1);
            document.getElementById('<%= RemovePalletReference.ClientID %>').value = pmt;
            return true;
        }
        else
            return false;
    }

我希望将用户按下 OK 的代码替换为confirm. 我尝试使用 jquery UI 模态对话框,但无法解决。我认为使用回调可能是可行的,但这对我来说是一个新主题,我正在努力。

请在答案中显示一些代码来帮助我。感谢任何帮助。

4

1 回答 1

0

前任

function confirmDialog(title, message, confirm, reject) {
    var dialog = $('<div />').html(message).dialog({
        appendTo: 'body',
        title: title,
        modal: true,
        buttons: {
            "OK": function () {
                $(this).dialog("close");
                confirm();
            },
                "cancel": function () {
                $(this).dialog("close");
                if ($.isFunction(reject)) {
                    reject();
                }
            }
        },
        close: function (event, ui) {
            $(this).dialog('destroy');
            $(this).remove()
        }
    })
}

function test(notes) {
    confirmDialog('Confirm', 'Confirm Something', function () {
        console.log('ok');
        //what ever you want to do on confirmation has to go here
    }, function () {
        console.log('cancelled')
    });
    //any code added here will get executed before the confirm box is displayed
}

演示:小提琴

于 2013-08-28T15:43:36.200 回答