jquery的ajax向jsp页面传值出错,用alter测试发现压根就没转到相应的jsp页面
这是edit.js(已经测试过了,除了$.get()之外,其他的代码都正确)$(function(){//隔行换色$("tbodytr:odd").css("backgr...
这是edit.js(已经测试过了,除了$.get()之外,其他的代码都正确)
$(function(){
//隔行换色
$("tbody tr:odd").css("background-color","#eee");
var numId = $("tbody td:odd");//列ID
numId.click(function(){
var tdIns = $(this);
var Id = $(this).prev("td").text();
if ( tdIns.children("input").length>0 ){ return false; }
var inputIns = $("<input type='text'/>"); //需要插入的输入框代码
//var text = $(this).html();
inputIns.width(tdIns.width());//设置input与td宽度一致
inputIns.val(tdIns.html());//将本来单元格td内容copy到插入的文本框input中
tdIns.html("");//删除原来单元格td内容
inputIns.appendTo(tdIns).focus().select();//将需要插入的输入框代码插入dom节点中
inputIns.click(function(){ return false;});
inputIns.blur(function(){
$.ajaxSetup({
async: true,//async:false 同步请求
cache: false,//cache: false 浏览器将不缓存此页面
contentType: 'application/x-www-form-urlencoded; charset=utf-8',//解决中文乱码
error: function(xhr, textStatus, errorThrown) {
alert("AJAX ERROE!!");
alert(this.type + ' url:' + this.url + '; error:' + textStatus + ';' + xhr.status);
return false;
}
});
var inputText = $(this).val();
tdIns.html(inputText);
$.get("editClassify.jsp",
{classifyName:inputText,classifyId:Id});
alert("该事件是否响应");
});
});
});
这是editClassify.jsp页面
<%@ page language="java" pageEncoding="gbk"%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<head>
</head>
<body>
<s:form action="EditBookClassify" method="post">
<s:fielderror cssStyle="color:red"/>
<table width="400" border="1" align="center" class="tab">
<tr>
<td>编辑图书<input type="hidden" name="bookclassify.classifyId" value="<%=request.getParameter("classifyId").trim()%>"></td>
</tr>
<tr>
<td>图书名称:</td>
<td><input name="bookclassify.classifyName" type="hidden" size="20" value="<%=request.getParameter("classifyName")%>"/></td>
</tr>
</table>
<script language="JavaScript">
alert("访问到了editClassify.jsp");
document.getElementById("EditBookClassify").submit();
</script>
</s:form>
</body>
我想要的结果就是,ajax传值到editClassif.jsp页面,而这个页面是自动提交给action的,不需要ajax返回什么 展开
$(function(){
//隔行换色
$("tbody tr:odd").css("background-color","#eee");
var numId = $("tbody td:odd");//列ID
numId.click(function(){
var tdIns = $(this);
var Id = $(this).prev("td").text();
if ( tdIns.children("input").length>0 ){ return false; }
var inputIns = $("<input type='text'/>"); //需要插入的输入框代码
//var text = $(this).html();
inputIns.width(tdIns.width());//设置input与td宽度一致
inputIns.val(tdIns.html());//将本来单元格td内容copy到插入的文本框input中
tdIns.html("");//删除原来单元格td内容
inputIns.appendTo(tdIns).focus().select();//将需要插入的输入框代码插入dom节点中
inputIns.click(function(){ return false;});
inputIns.blur(function(){
$.ajaxSetup({
async: true,//async:false 同步请求
cache: false,//cache: false 浏览器将不缓存此页面
contentType: 'application/x-www-form-urlencoded; charset=utf-8',//解决中文乱码
error: function(xhr, textStatus, errorThrown) {
alert("AJAX ERROE!!");
alert(this.type + ' url:' + this.url + '; error:' + textStatus + ';' + xhr.status);
return false;
}
});
var inputText = $(this).val();
tdIns.html(inputText);
$.get("editClassify.jsp",
{classifyName:inputText,classifyId:Id});
alert("该事件是否响应");
});
});
});
这是editClassify.jsp页面
<%@ page language="java" pageEncoding="gbk"%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<head>
</head>
<body>
<s:form action="EditBookClassify" method="post">
<s:fielderror cssStyle="color:red"/>
<table width="400" border="1" align="center" class="tab">
<tr>
<td>编辑图书<input type="hidden" name="bookclassify.classifyId" value="<%=request.getParameter("classifyId").trim()%>"></td>
</tr>
<tr>
<td>图书名称:</td>
<td><input name="bookclassify.classifyName" type="hidden" size="20" value="<%=request.getParameter("classifyName")%>"/></td>
</tr>
</table>
<script language="JavaScript">
alert("访问到了editClassify.jsp");
document.getElementById("EditBookClassify").submit();
</script>
</s:form>
</body>
我想要的结果就是,ajax传值到editClassif.jsp页面,而这个页面是自动提交给action的,不需要ajax返回什么 展开
1个回答
展开全部
你把 前后的逻辑 弄混了.
$.get("editClassify.jsp",function(html){
// html == "editClassify.jsp页面" tyoeof html ==="string"
// 页面中的 JavaScript 是不会执行的.
});
// 完成你上述的功能你应该这么写editClassify.jsp页面
<%
执行 (request.getParameter("classifyId") request.getParameter("classifyName"))的相关操作,
%>
"访问到了editClassify.jsp"
请求页面
$.get("editClassify.jsp?classifyId=xxx&classifyName=XXX",function(html){
//html == "访问到了editClassify.jsp"
alert(html)
});
$.get("editClassify.jsp",function(html){
// html == "editClassify.jsp页面" tyoeof html ==="string"
// 页面中的 JavaScript 是不会执行的.
});
// 完成你上述的功能你应该这么写editClassify.jsp页面
<%
执行 (request.getParameter("classifyId") request.getParameter("classifyName"))的相关操作,
%>
"访问到了editClassify.jsp"
请求页面
$.get("editClassify.jsp?classifyId=xxx&classifyName=XXX",function(html){
//html == "访问到了editClassify.jsp"
alert(html)
});
更多追问追答
追问
哈哈,我们两个真是有缘哈,现在这里多谢了。
第一;能不能再说的详细一点哈,现在感觉一头雾水啊(就根据我写的这个form表单)
第二:就是怎么让editClassify.jsp自动提交呢,难道是把document.getElementById("EditBookClassify").submit();也写在回调函数中,可是毕竟这段edit.js代码跟editClassify.jsp页面不在同一个页面上,这样写会不会找不到表单中EditBookClassify这个action?最终的结果是要把数据库中的值修改过来
追答
表单提交 的作用就是把 前端的数据 交给 后端处理.
$.get("editClassify.jsp?classifyId=xxx&classifyName=XXX") 这里你已经做到了.
后端得到了二个 参数,你可以去处理他们了.
so 自动提交 什么的是错误的思维方式.
你把 $.get("editClassify.jsp?classifyId=xxx&classifyName=XXX") 当成表单提交,处理的结果,在
html里.
html = editClassify.jsp 向页面输出的文字.
function(html){
alert(html)
});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询