用的是 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>
--------------------编程问答-------------------- --------------------编程问答-------------------- 我觉的还是执行没成功,你在$.post方法后面加上
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(
"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提交,根本就不用去看你的代码。 --------------------编程问答--------------------
++ --------------------编程问答-------------------- 你直接给submit了。改成button。 --------------------编程问答-------------------- 然后绑定click
补充:Java , Web 开发