在我的gridview中有个模板列,里面是textbox 。 我要做的是鼠标移进去的时候能输入分数,鼠标移出来就能实现保存。但是这个鼠标移出来要去触发这个 一般处理程序,可没有触发,数据没有保存进数据库里面。我的一般处理程序和这个页面文件是在一个文件夹里面的。
下面是我的前台jquery的代码:
<script type="text/javascript">
$(function () {
var tr_num = "";
var td_num = "";
$(".txt_defen").css("text-align", "center");
$(".txt_defen").css("margin", "5px 0px 5px 0px");
$(".txt_defen").mouseenter(function () {
temp = $(this).val();
$(this).css("border", "1px solid black");
$(this).css("color", "blue");
});
$("#gvData td").click(function () {
tr_num = $("#gvData td").parent().parent().find("tr").index($(this).parent()[0]); //获得行号
td_num = $("#gvData td").parent().find("td").index($(this)[0]); //获得列号
});
$(".txt_defen").mouseout(function () {
$(this).css("border", "white");
$(this).css("color", "black");
$.ajax({
type: "post",
url: "Handler.ashx",
data: {
"defen": $(this).val(),
"no": $('#gvData tr').eq(tr_num).find("td:first").text()
},
success: function (data) {
//alert(data);
window.location.href = "批改作业.aspx";
},
error: function (err) { }
});
}); $(".txt_defen").focus(function () {
$(this).css("border", "1px solid black");
$(this).val("");
});
});
</script>
下面是我的一般处理程序的代码:
<%@ WebHandler Language="C#" Class="Handler" %>using System;
using System.Web;
using System.Data.Sql;
using System.Data.SqlClient;public class Handler : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string defen = context.Request["defen"].ToString();
string no = context.Request["no"].ToString();
string str = " Data Source=VCC-PC;Initial Catalog=jifangzuoyenet;Persist Security Info=True;User ID=sa;Password=123456";
SqlConnection con = new SqlConnection(str);
con.Open();
string sql = "update zuoye set defen = '" + defen + "' where no = '" + no + "'";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
context.Response.Write("更新成功");
con.Close();
} public bool IsReusable
{
get
{
return false;
}
}}
下面是我的前台jquery的代码:
<script type="text/javascript">
$(function () {
var tr_num = "";
var td_num = "";
$(".txt_defen").css("text-align", "center");
$(".txt_defen").css("margin", "5px 0px 5px 0px");
$(".txt_defen").mouseenter(function () {
temp = $(this).val();
$(this).css("border", "1px solid black");
$(this).css("color", "blue");
});
$("#gvData td").click(function () {
tr_num = $("#gvData td").parent().parent().find("tr").index($(this).parent()[0]); //获得行号
td_num = $("#gvData td").parent().find("td").index($(this)[0]); //获得列号
});
$(".txt_defen").mouseout(function () {
$(this).css("border", "white");
$(this).css("color", "black");
$.ajax({
type: "post",
url: "Handler.ashx",
data: {
"defen": $(this).val(),
"no": $('#gvData tr').eq(tr_num).find("td:first").text()
},
success: function (data) {
//alert(data);
window.location.href = "批改作业.aspx";
},
error: function (err) { }
});
}); $(".txt_defen").focus(function () {
$(this).css("border", "1px solid black");
$(this).val("");
});
});
</script>
下面是我的一般处理程序的代码:
<%@ WebHandler Language="C#" Class="Handler" %>using System;
using System.Web;
using System.Data.Sql;
using System.Data.SqlClient;public class Handler : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string defen = context.Request["defen"].ToString();
string no = context.Request["no"].ToString();
string str = " Data Source=VCC-PC;Initial Catalog=jifangzuoyenet;Persist Security Info=True;User ID=sa;Password=123456";
SqlConnection con = new SqlConnection(str);
con.Open();
string sql = "update zuoye set defen = '" + defen + "' where no = '" + no + "'";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
context.Response.Write("更新成功");
con.Close();
} public bool IsReusable
{
get
{
return false;
}
}}
我学的还是 比较浅的,接触了没多久。
我还不会使用vs来调试avascript 代码,
我学的还是 比较浅的,接触了没多久。
你ajax内部和外部的 $(this) 不是同一个对象,你在内部$(this).val()应该会报错。
我建议你把所有需要用到的$(this)的东西,在ajax外部,用一个变量保存起来,内部直接使用变量。
而不要用$(this)这样的方式来获取val。在重申一下,ajax内部和外部的this指向的对象不是同一个。
您好,我刚接触这个没多久。
我子啊ajax的外面有了这个 : var mythis = $(this).val;然后ajax里面变成了这样,还是不行呀: $.ajax({
type: "post",
url: "Handler.ashx",
data: {
"defen": mythis,
"no": $('#gvData tr').eq(tr_num).find("td:first").text()
},
success: function (data) {
//alert(data);
window.location.href = "批改作业.aspx";
},
error: function (err) { }
});
是鼠标事件没有触发,
还是ajax提交没有执行,
或是ajax提交了,没有返回预期的结果,
或是返回了结果,而随后的操作没有正确执行
把这搞清楚了,再查问题就简单了,
不要一把胡子抓
2015的话,js调试断点位置可以看服务器端变量变化,比浏览器调试方便多了。
可它就是没有存进数据库。
2015的话,js调试断点位置可以看服务器端变量变化,比浏览器调试方便多了。我现在用的是vs 2010
Google 的 Chrome 怎么调试 js ?
Google 的 Chrome 怎么调试 js ?
基本上不用设置断点调试,用console.log('要输出的变量、对象等'),通过查看console来看结果就知道错误了