jquery传值之ajax
下面这段程序为行内编辑的jquery代码,打问号的地方就是ajax传值,但是好像压根就没有去访问editClassify.jsp页面啊,求解啊?多谢了$(function...
下面这段程序为行内编辑的jquery代码,打问号的地方就是ajax传值,但是好像压根就没有去访问editClassify.jsp页面啊,求解啊?多谢了
$(function(){
//隔行换色
$("tbody tr:odd").css("background-color","#eee");
var numId = $("tbody td:odd");//列ID
numId.click(function(){
var tdIns = $(this);
var classifyId = $(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;});
//处理Enter和Esc事件
inputIns.keyup(function(event){
var keycode = event.which;
if( keycode == 13 ){
var inputText = $(this).val();
tdIns.html(inputText);
$.get("editClassify.jsp",{classifyName:"inputText",classifyId:"classifyId"});//???????????????
if(inputText===null){alert("输入为空");}
else{alert("输入的类型为:"+classifyName);}
}
if( keycode == 27 ){ tdIns.html(text);}
});
});
});
但是我按enter键之后,在控制台hibernate有一句查询语句输出,说明按enter之后又去查数据库了,嗯?这是什么原因?我不是让他传到editClassify.jsp页面吗? 展开
$(function(){
//隔行换色
$("tbody tr:odd").css("background-color","#eee");
var numId = $("tbody td:odd");//列ID
numId.click(function(){
var tdIns = $(this);
var classifyId = $(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;});
//处理Enter和Esc事件
inputIns.keyup(function(event){
var keycode = event.which;
if( keycode == 13 ){
var inputText = $(this).val();
tdIns.html(inputText);
$.get("editClassify.jsp",{classifyName:"inputText",classifyId:"classifyId"});//???????????????
if(inputText===null){alert("输入为空");}
else{alert("输入的类型为:"+classifyName);}
}
if( keycode == 27 ){ tdIns.html(text);}
});
});
});
但是我按enter键之后,在控制台hibernate有一句查询语句输出,说明按enter之后又去查数据库了,嗯?这是什么原因?我不是让他传到editClassify.jsp页面吗? 展开
1个回答
展开全部
if( keycode == 13 ){
//看看该事件是否响应
alert("该事件是否响应");
//响应
$.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;
}
});
//url 是否正确
//请求是否出错
//是否被 缓存
var inputText = $(this).val();
tdIns.html(inputText);
$.get("editClassify.jsp",{classifyName:"inputText",classifyId:"classifyId"});
if(inputText===null){alert("输入为空");}
else{alert("输入的类型为:"+classifyName);}
}
PS: 按下回车后 如果外围存在表单,有时候表单提交(浏览器行为)会在按建事件之前.先看看按下回事 页面相应的是那个事件吧.
//看看该事件是否响应
alert("该事件是否响应");
//响应
$.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;
}
});
//url 是否正确
//请求是否出错
//是否被 缓存
var inputText = $(this).val();
tdIns.html(inputText);
$.get("editClassify.jsp",{classifyName:"inputText",classifyId:"classifyId"});
if(inputText===null){alert("输入为空");}
else{alert("输入的类型为:"+classifyName);}
}
PS: 按下回车后 如果外围存在表单,有时候表单提交(浏览器行为)会在按建事件之前.先看看按下回事 页面相应的是那个事件吧.
追问
我刚才试过了,alert("该事件是否响应");这句弹出框执行了,但是ajax还是没反应,只是在页面上改了值。在$.get所要前往的页面我加了一个alert事件,但是也没有触发,也就是说ajax压根就没有起作用啊。至于你说的页面表单,在此脚本所在的页面有两个form表单,但是alert事件的执行已经说明是这个了。error: function()也没有执行。还有什么改进的方法吗?多谢了
追答
$.get("editClassify.jsp",
{classifyName:"inputText",classifyId:"classifyId"},
function(html){
// 这里是回调函数,如果ajax请求得到了响应,就把返回值 "喷出来",
//当然如果你需要返回值做就什么的话也应该写在这里.
alert(html)
}
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询