繁体   English   中英

jQuery UI模式对话框无法正常工作

[英]Jquery UI Modal Dialog Not Working Properly

我创建了一个jQuery模态密码对话框,以重定向到用于密码验证的页面。

模态对话框看起来不错,但是没有执行处理密码验证的方法,而是在浏览器警报对话框中显示错误[object Object] 我试图找出我在这里做错了什么。

下面是我的代码:

的JavaScript / jQuery的

$(document).on("click", "[id*=lnkView1]", function() {    
    $("#dlgPassword").dialog({
        title: "View Details",
        buttons: {
            Go: function() {
                var valPassword = $("[id*=cpgnPassword]").val();
                var hdfCamId = $('#<%=rptCampaigns.ClientID %>').find('input:hidden[id$="hdfCampaignID"]').val();
                $("[id*=hdfCampaignID2]").val(hdfCamId);
                //var jsonObj = '{password: "' + valPassword + '"}';
                var res;
                $.ajax({
                    type: 'POST',
                    contentType: 'application/json; charset=utf-8',
                    data: '{password: "' + valPassword + '"}',
                    dataType: 'json',
                    url: 'CampaignsList.aspx/ValidatePasswordWM',
                    success: function(data) {
                        alert('successful')
                    },
                    error: function(err) {
                        alert(err.toString());
                    }
                });

                $(this).dialog('close');
            }
        },
        modal: true
    });
    return false;
});

代码隐藏

protected void ValidatePassword(object password)
{
    var campaign = new CampaignsService().GetByCampaignId(hdfCampaignID2.Value);
    if (campaign != null)
    { 
        if (campaign.Password.Equals(password))
            Response.Redirect("CampaignDetails.aspx?CampaignID=" + hdfCampaignID2.Value);
    }            
}

[WebMethod]
public static void ValidatePasswordWM(object password)
{
    CampaignsList page = new CampaignsList();
    page.ValidatePassword(password);
}

有人可以帮助我找出问题所在吗?

您需要对话框上的appendTo属性,以便将其正确添加到表单中。

$("#dlgPassword").dialog({
    title: "View Details",
    appendTo: "form",
    buttons: {
    ...

代替err.toString() ,尝试err.message

此代码显示了jQuery UI上的产品地籍。 当按下确定按钮时,重新填充下拉列表。

使用Javascript:

$dialog = $("#dlgCadastroProduto").dialog({
    modal: true,
    autoOpen: false,
    height: 500,
    width: 700,
    buttons: {
        Ok: function () {
            $(this).dialog("close");                
            $("#lstProducts").empty();
            $("#lstSelectedProducts").empty();
            $.ajax({
                type: "GET",
                url: '/Produto/jsonLoad',
                async: true,
                dataType: 'json',
                success:
                    function (data) {
                      //alert('sucesso');
                      $.each(data, function (index, value) {
                          //insere elemento na droplist
                        $("#lstProducts").append('<option value='+value.ID+'>'+value.Descricao+'</option>')                    
                      });
                    },
                error: function (data) {
                     //alert(data);
                }
            });
        }
    }
});

$("#btnCadastroProduto").button().on("click", function () {
    $dialog.dialog("open");
});

控制器的代码隐藏:

    public JsonResult jsonLoad()
    {
        var lista = _produtoBLL.FindAll();
        var xpto = lista.Select(x => new { Id = x.ID, Descricao = x.Descricao });
        return Json(xpto, JsonRequestBehavior.AllowGet);
    }

我希望我有所帮助

这只是示例代码,您可以随身携带

客户端

var mparam = "{param1:'" + mvar1 + "',param_n:'" + mvar_n + "'}";
$.ajax({
    type: "POST",
    url: "file_name.aspx/web_method",
    data: mparam,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (Response) {
        try {
            var msdata = JSON.parse(Response.d);
            if (msdata.err == "0") {
                location.replace("newlocation");
            }else{
                alert("Error:" + msdata.msg);
            }           
        } catch (e) {
            alert("Error in JSON parser error:" + e.description);
        }
    },
    error: function (medata) {
        alert("Internal Server Error:" + medata);
    }
});

服务器端

[System.Web.Services.WebMethod]
public static string web_method(string param1, string param_n)
{
    string strerror = "0", strmessage = "";
    try
    {
        strerror = "0";
    }
    catch (Exception ex)
    {
        strerror = "2";
        strmessage = ex.Message;
    }

    return "{\"err\":\"" + strerror + "\",\"msg\":\"" + strmessage + "\"}";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM