你回车是不是用来做别的事情了,
比如submit form什么的。
额~~ 刚刚才发现 确实是默认来提交表单的~~。设置这个event.preventDefault();好像也不行。还是进不去回调函数,求指教~~
@xyq_雨晴: 监视网络, 把服务器返回的东西也发过来看下。 搞不好返回来的数据不对, 解析错了呢。
@undefined: 返回的数据如果有问题,那我普通的按钮调用时肯定也不能用,但是我普通的按钮调用执行是正常的。刚刚终于解决了。但还是有点不太理解为什么,网上说如果表单上只有一个文本框的时候enter键会默认带提交功能。我加了个文本框影藏起来 相当于把enter键的提交功能去掉以后,就正常了,不知道为什么他的提交功能会影响回调函数的触发。
@xyq_雨晴: 怀疑你页面回发了。 这样ajax回来的时候页面都不在了。
@undefined: 我做那个ajax的功能是需要把选中的那个文本框的值更新到数据库里,返回操作结果。之前错误的结果是:数据库更新了,但是界面上显示的还是旧的数据。这是不是意味着enter提交表单没成功呢?
@xyq_雨晴: 我认为可能刚好想法吧。 可能是这么个顺序:提交表单->ajax开始提交->提交表单成功,刷新页面, 取到了旧的数据->ajax把数据库更新完毕了->ajax返回,可是它所在的页面不在了。
这样就和你的观测一致了。
@undefined: 之前没打断点到page_load里面去,刚刚测了下,确实是调用ajax以后 调到了page_load里面执行了以后,再执行ajax目标页面的代码。但是我Page_Load里面没有可执行的代码,他会自动刷新页面?
protected void Page_Load(object sender, EventArgs e)
{
this.GradeType = RequestHelper.GetQueryString("GradeType").Trim();
if (!IsPostBack)
{
getGradeType();
getBasicGradeInfo(GradeType); ;
}
}
@xyq_雨晴: 因为form被submit了吗。 page_load都进去了,有没有代码不重要了。
@undefined: 嗯,谢谢您了~~
先看下请求有没发出去
发出去了,目标页面的代码也执行了,没报异常,执行完了就直接回到页面 没有执行我回调函数里的代码了~~不知道怎么回事 普通的按钮调用同样的那个方法 没一点问题!
@xyq_雨晴: 执不执行要打断点看.你先把发请求的代码发上来吧
@吴瑞祥:
$.ajax({
type: "POST",
url: $("#ScoreInfoTable").attr("EditScoreUrl"),
dataType: 'html',
data: { GradeID: GradeID, LowerLimit: LowerLimit, UpperLimit: UpperLimit },
success: function (data) {
debugger;
if (data == "true") {
var text = $("#selTxt").val();
var currentTd = $("#selTxt").parent()[0];
currentTd.innerText = "";
$("#selTxt").remove();
currentTd.innerText = parseFloat(text).toFixed(5);
}
else {
alert("更新失败");
}
},
error: function (xhr) {debugger; alert('发生错误:' + xhr.responseText); }
});
这个是ajax请求
目标页面可以获取值:string GradeID = RequestHelper.GetString("GradeID");
执行完:
if (BLL.UpdateBasicGrade(Model) > 0)
{
context.Response.Write("true");
} 就直接到了页面,应该是需要进入success里面的,弄个debugger都不管用~~
你把ajax的请求回调写全呢,success,error,complete
写全也没进去complete~~ 不知道是不是默认enter键提交表单的缘故,
event.preventDefault();
event.returnValue = false; 设置这些都不起作用。
现在解决了,谢谢哈~~
@xyq_雨晴: 应该不是ajax的问题吧~
从描述看,楼主没有发现问题的根源。原因不在于ajax,而在于按钮。
刚刚终于解决了。但还是有点不太理解为什么,网上说如果表单上只有一个文本框的时候enter键会默认带提交功能。我加了个文本框影藏起来 相当于把enter键的提交功能去掉以后,就正常了,不知道为什么他的提交功能会影响回调函数的触发。