为提示创建合适的替代品

时间:2013-08-28 15:27:22

标签: javascript jquery asp.net prompt

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

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

<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模式对话框,但无法解决它。我认为使用回调可能是可行的,但这对我来说是一个新的主题,我正在努力。

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

1 个答案:

答案 0 :(得分: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
}

演示:Fiddle