【问题标题】:Get an alert when a form cant be submitted using ajax无法使用 ajax 提交表单时收到警报
【发布时间】:2019-05-26 10:39:03
【问题描述】:

我有一个表格供用户请求休息日,在我的服务器端,我有功能检查是否有超过 3 个人请求同一天休息,如果有,则不会让用户在当天请求。当他们当天无法请求时,我想显示一个弹出窗口/警报

这是我在控制器中的方法

if(results.size() >3)
{
   System.out.println("Too many people asked for that day off");
   return new ModelAndView("request");

}
else
{
    Request request = new Request();
    request.setDate(newDate);
    request.setNumDays(numDays);
    request.setReason(reason1);

    ModelAndView mv = new ModelAndView("successRequest");
    mv.addObject("request", request);

    requestService.save(request);
        return mv;
}

当当天有超过 3 个请求时,它会返回一个空表单,但我也希望它有一条警报消息 我尝试使用 ajax 在我的 jsp 页面上做到这一点

$('#form').submit(function(e)
{   
     $.ajax({
     type:'POST',
     url:"/request",
     data:$(this).serialize(),
     error: function(){
      window.alert("Too many people have asked for that day off");
      console.log("Error");
     }
});     
});

【问题讨论】:

  • 在您的控制器代码中,您只是将消息打印到控制台,而不是将其发送回浏览器。添加代码以将其作为请求的一部分发回,就像您在“其他”部分中发送时一样
  • @LearningPhase 我如何在警告框中显示它,然后一旦将它发送回浏览器?表单刷新,我想弹出一个警告框
  • 在您的浏览器代码中,您的 ajax 调用有一个错误,没有成功块。检查以下链接fruzenshtein.com/spring-mvc-ajax-jquery

标签: javascript java jquery ajax spring-mvc


【解决方案1】:

AJAX 期待 JSON 响应而不是 ModelAndView 对象。

所以首先要做的是使用 @ResponseBody 而不是 ModelAndView 对象返回 JSON 响应。

然后根据标志值,您可以向用户显示警报。

【讨论】:

  • 如何返回 json 响应?我是 ajax 新手
猜你喜欢
  • 2015-10-16
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 2021-08-03
  • 2015-01-01
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多