location.reload()不能正常工作

时间:2015-04-27 07:44:07

标签: javascript jquery spring-mvc

偶尔会出现此问题

单击下页中的“添加标签”灰色按钮,输入标签名称并提交。 enter image description here enter image description here

提交操作将刷新此页面并在页面中显示此标记,如下所示: enter image description here

提交操作的JavaScript代码是:

function tagSubmit(){
var tagName = $("#tagName").val();
jQuery.ajax({
    type: "POST",
    url: "/m/tag/add",
    data : {"taskId":taskId,"tagName":tagName},
    dataType : "json",
    success: function (msg) {  //1/0
        if (msg == 1){
            location.reload();
        }else {
            alertWarning("添加失败");
        }
    }
});
}

Controller.java是:

@Controller
@RequestMapping("/m/tag")
public class TagController extends ControllerBase {

@Autowired
TagService tagService;

@RequestMapping(value = "/add",method = RequestMethod.POST)
@ResponseBody
public int add(@RequestParam(value = "taskId") long taskId    ,@RequestParam("tagName")String tagName){


    boolean flag = tagService.addTag(tagName.trim(),taskId) ;

    return flag?1:0;

}
}

单击提交按钮后发生错误: enter image description here

网址http://172.16.1.5:9082/m/rule/unScheduleRule?必须包含参数“taskId”:

@RequestMapping(value = "unScheduleRule", method = RequestMethod.GET)
public ModelAndView unScheduleRule(@RequestParam(value = "taskId") long taskId, ModelMap modelMap) {
    Task task = taskService.getById(taskId);
    ModelAndView view = null;

我该如何解决?

将参数required = false添加到下面的代码中?

public ModelAndView unScheduleRule(@RequestParam(value = "taskId",required=false) long taskId, ModelMap modelMap) 

但是如果没有提供taskId,这个页面将无法正常工作!!!

偶尔会发生 ,这让我很困惑

1 个答案:

答案 0 :(得分:1)

您需要添加event.preventDefault()才能停止提交表单,您可以通过AJAX提交表单。

  

如果调用此方法,则不会触发事件的默认操作。

function tagSubmit(e) {
    e.preventDefault();

文档:http://api.jquery.com/event.preventdefault/