当前位置:编程学习 > JAVA >>

用的是 jquery的 post方法,为什么是地址栏传参啊?而且回调函数;也没有执行。

jquery 的 ajax中 post方法到底是用的什么方法提交的啊?我用的jsp servlet jquery1.7 ,在jsp中写了一个表单 和 onsubmit事件,用post提交到servlet一切没有问题,但是 servlet执行完了他不执行回调函数!而且参数居然在地址栏上!!!!!!崩溃啊!

     function checkform2(){
  var title = document.getElementsByName("title")[0];
  var content = document.getElementsByName("content")[0];
  if(title.value=="" || content.value==""){
   alert("输入不能为空!");
    title.focus();
    return false;
   }
   if(title.value.length < 5 || title.value.length > 100){
    alert("标题输入字数不正确!");
    title.focus();
    return false;
   }
   if(content.value.length < 5 || content.value.length > 2000){
    alert("内容输入字数不正确!");
    content.focus();
    return false;
   }
   $.post(
    "addNewItem?type=addNews", 
    {"title":title.value, "content":content.value},
    function (data, textStatus){
           window.location.href="seeNewItem?id="+data.id;
    },
      "json"
   );
}


    <form onsubmit="return checkform2();" name="form">
<label for="email">
标题
</label>
<input name="title" type="text" placeholder="请输入标题"
maxLength="100" id="title"/>
<label for="pass">
内容
</label>
<textarea name="content" placeholder="请输入新闻内容" id="content"></textarea>
<br /><br /><input type="submit" value="提交数据"/>
</form>


  public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
NewItem temp = new NewItem();
if(check(temp, request)){
String id = newitemdao.Save(temp);
response.setContentType("application/json");
PrintWriter outs = response.getWriter();
JSONObject json = JSONObject.fromObject("{\"id\":" + id + "}");
outs.print(json.toString());
}else
response.sendRedirect("InputNewItem.jsp");
}
--------------------编程问答-------------------- --------------------编程问答-------------------- 我觉的还是执行没成功,你在$.post方法后面加上
 $.post(
                           "addNewItem?type=addNews", 
                           {"title":title.value, "content":content.value},
                           function (data, textStatus){
                                  window.location.href="seeNewItem?id="+data.id;
                           },
                            "json"
                   ).success(function() { alert("second success"); })
                   .error(function() { alert("error"); })
                   .complete(function() { alert("complete"); });

;
这几行,看看什么结果 --------------------编程问答-------------------- 汗了...你先搞明白一点..
form的submit函数只要不是返回false,那就必定会被提交
你应该在checkform2()最后加上一个return false;否则post还没执行完form就再次进行本身提交了 --------------------编程问答-------------------- 楼上说的对,要不你也可以><input type="submit" value="提交数据"/>
把type="submit" 变成<input type="button" value="提交数据" onClick="checkform2();"/>
  并把<form onsubmit="return checkform2();"  这里去掉。再把checkform2方法中的return false 变成return;就好。   实际上是把submit提交变成button来调用 方法提交   --------------------编程问答-------------------- 你应该奇怪你用ajax最提交,怎么会地址栏的东西?而不是奇怪你的post提交会在地址栏中显示参数!

我看了你问题开头就知道你肯定不止做了ajax提交,根本就不用去看你的代码。 --------------------编程问答--------------------
引用 3 楼  的回复:
汗了...你先搞明白一点..
form的submit函数只要不是返回false,那就必定会被提交
你应该在checkform2()最后加上一个return false;否则post还没执行完form就再次进行本身提交了


++ --------------------编程问答-------------------- 你直接给submit了。改成button。 --------------------编程问答-------------------- 然后绑定click
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,