【问题标题】:How to hide the popup using jquery?如何使用 jquery 隐藏弹出窗口?
【发布时间】:2015-03-06 06:24:08
【问题描述】:

我有两个弹出窗口,在 popup1 中,如果我填写了所有文本框并继续,我将被重定向到 popup2。否则,我应该与验证消息一起留在 popup1 中。

注意:如果我的“caseNum”具有有效值,我将重定向到 popup2,否则重定向到 popup1。

我有我的代码,

function NewCaseForm()//popup1
{
var OwnerAgency = $("#OwnerAgency :selected").val();
var OwnerAgent = $("#OwnerAgent :selected").val();
 var NewCase =
 {
        "OwnerAgency": OwnerAgency,
        "OwnerAgent": OwnerAgent,
       };
$.ajax({
    url: '/Index/NewCase/',
    data: JSON.stringify(NewCase),
    contentType: 'application/json; charset=utf-8',
    type: "POST",
    success: function (caseNum) {
        if (caseNum) {
            var caseNo = caseNum;
            ImportTypeSelectionNewCase(caseNum);//popup2
        }
    },
});

} 让我的控制器喜欢,

   [HttpPost]
    public ActionResult NewCase(NewCase model)
    {
  if (model.MyCaseNumber == null || model.OwnerAgency.ToString() == "" || model.OwnerAgent.ToString() == ""
                || model.AnalystAgency.ToString() == "" || model.AnalystAgent.ToString() == "")
            {
                model.IsValid = true;
                model.ValidationMessage = "Please Enter a New Case Number or Analyst information or Owner information to continue.";
                return View(model);
            }
            else
           {
              int caseId = _ServiceHelper.SaveNewCase(
                    model.OwnerAgency, model.OwnerAgent, );
                string caseNum = model.MyCaseNumber.Replace(" ", "_").Trim()                         + ":" + caseId;
                return Json(caseNum);
                }
           return View("ImportTypeSelection");

但我的代码确实喜欢,而不是在 popup1 中显示它显示 popup2。作为初学者,我不知道如何解决这个问题。请告诉我。

【问题讨论】:

  • caseNum的值是多少,你调试过值吗
  • k 那你怎么知道它无效
  • 因此,如果它无效,则 caseNum 为空正确,然后更改您的 if 条件,例如 if(caseNum!=null){....}
  • 如果有任何值这就是第二个弹出窗口出现的原因,您的“如果”总是触发。编辑成功函数并发布您的控制器方法

标签: jquery razor model-view-controller


【解决方案1】:

无法评论,所以作为答案...

  1. 请提醒 caseNum 的值并检查返回的内容

  2. 试着让你的 ajax 查询同步 async:false;

【讨论】:

  • 这听起来像是愚蠢的..但是你试过 if(caseNum == 12345) 吗?只需关注它是否在值为 12345 时可以工作,所有其他条件都可以稍后修复..此外,默认情况下 ajax 查询是异步的,即在转发下一条语句执行之前它不会等待答案..如果你把 async:false;它将确保只有在收到答案后才会执行下一条语句。
【解决方案2】:

像这样改变你的控制器

 [HttpPost]
    public ActionResult NewCase(NewCase model)
    {
  if (model.MyCaseNumber == null || model.OwnerAgency.ToString() == "" || model.OwnerAgent.ToString() == ""
                || model.AnalystAgency.ToString() == "" || model.AnalystAgent.ToString() == "")
            {
                return View("");
            }
            else
           {
              int caseId = _ServiceHelper.SaveNewCase(
                    model.OwnerAgency, model.OwnerAgent, );
                string caseNum = model.MyCaseNumber.Replace(" ", "_").Trim()                         + ":" + caseId;
                return Json(caseNum);
                }
           return View("ImportTypeSelection");
}

你的客户端功能是这样的

        function NewCaseForm()//popup1
        {
        var OwnerAgency = $("#OwnerAgency :selected").val();
        var OwnerAgent = $("#OwnerAgent :selected").val();
         var NewCase =
         {
                "OwnerAgency": OwnerAgency,
                "OwnerAgent": OwnerAgent,
               };
        $.ajax({
            url: '/Index/NewCase/',
            data: JSON.stringify(NewCase),
            contentType: 'application/json; charset=utf-8',
            type: "POST",
            success: function (caseNum) {
                if (caseNum !="") {
                    var caseNo = caseNum;
                    ImportTypeSelectionNewCase(caseNum);//popup2
                }
    else{
     var errorMessageOne="error 1";
 var errorMessageTwo="error 2";
 var errorMessageThree="error 3";
 var errorMessageFour="error 4";

//and use these values 

    }
            }
        });

从现在开始,if only 触发器 casenum 不是空字符串。如果您在同一页面中,请使用 jsonresult 插入操作结果

【讨论】:

  • :谢谢。但这不适合我的问题。我的代码中有两个以上的验证消息。那我该怎么办?
猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 2022-12-31
  • 2020-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多