onclick与onblur有什么区别吗?

xilaianzxsc 2013-10-19 09:24:16
login.asp中:

<input onBlur="login_onblur()" name="yhid" type="text" id="yhid" size="30" />
<input type="submit" name="button1" id="button1" value="提交" />
//程序中,上面一句命令中调用函数时,运行一切正常.

如果将上述二行命令改成如下:
<input name="yhid" type="text" id="yhid" size="30" />
<input onClick="login_onblur()" type="submit" name="button1" id="button1" value="提交" />
//运行结果是:页面只是自动刷新一下,无任何反应.

//问题点:同样是相同的函数,为何在onBlur中,能正确运行,而在onClick时,却不能正确运行?


function login_onblur()
{
var yhid=document.getElementById("yhid").value;
var url="cheshi.asp?usercode="+yhid;
request.open("GET",url,true);
request.onreadystatechange=updatepage;
request.send(null);
}

function updatepage()
{
if (request.readyState == 4 && request.status==200)
{
var response=request.responseText;
document.getElementById("gysname").value = response
}


cheshi.asp中如下:

<%
sql = "select * FROM vendor_username where ...." //此处省略

conn = Server.CreateObject("ADODB.Connection")
rs = Server.CreateObject("ADODB.Recordset")
conn.ConnectionString = ........此处先省略
conn.Open() //连接数据库

rs.ActiveConnection = conn
rs.CursorType = 1 //设置游标类型
rs.LockType = 1 //设置锁定状态
rs.Open(sql) // 打开记录集.

Response.Clear
Response.Charset="gb2312"
Response.Write(rs("cvenname"));
Response.End;
%>
...全文
502 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xilaianzxsc 2013-10-19
  • 打赏
  • 举报
回复
回3楼: 那为什么是相同的函数,为什么onblur能正确运行,而onclick时,却不能执行?
hanlinhe110 2013-10-19
  • 打赏
  • 举报
回复
onclick就是鼠标单击你事件所在的控件,执行你的onclick方法 onblur 是失去焦点产生的事件,比如说你有个文本框,你鼠标点击进去,只有在离开的时候才会执行onblur事件
xilaianzxsc 2013-10-19
  • 打赏
  • 举报
回复
会不会存在"onclick被覆盖"的说法? 还是等showbo老师来帮忙吧
  • 打赏
  • 举报
回复
http://www.w3school.com.cn/ 建议去上面看看
xilaianzxsc 2013-10-19
  • 打赏
  • 举报
回复
submit是提交表单用,而button是执行javascript用. 网上找到了。
xilaianzxsc 2013-10-19
  • 打赏
  • 举报
回复
回10的老师: 先向您表示感谢。根据7楼老师的建议,问题已经解决。 现在只是不知道:以后什么时候使用sumbit,什么情况下使用button ?
xilaianzxsc 2013-10-19
  • 打赏
  • 举报
回复
换言之,我以后,什么情况下,使用sumbit,什么情况下使用button ?
KK3K2005 2013-10-19
  • 打赏
  • 举报
回复
function updatepage() { if (request.readyState == 4 && request.status==200) { var response=request.responseText; alert(1); //此行在onblur时响应,在onclick时不响应 alert(request.responseText);////此行在onblur时响应,在onclick时不响应 document.getElementById("gysname").value = response }else{ alert([request.readyState,request.status]); } 很好!!你已经初步定位问题了 在继续 调试 你要知道 当你写了 if得时候那么说明 还有种相反的else的情况 你要调试证明 没有进else 如果进了 那么 问题就 出来了 如果进了 else 说明 (request.readyState == 4 && request.status==200) 条件不成立 说明 后台页面没有正常返回 那么 这个时候 我一般会看equest.status 看他得输出值 这个状态码 会说明服务器 发生了什么类型的问题 还有我会在浏览器种 直接 查看 var url="cheshi.asp?usercode="+yhid; 直接在地址栏种 输入 这个 url(注意填写完整的域名等相对位置) 你就可以 直接 修改后台页面的输出进行调试了
xilaianzxsc 2013-10-19
  • 打赏
  • 举报
回复
同样是生活在一起的按钮,差异咋就那么大呢?
xilaianzxsc 2013-10-19
  • 打赏
  • 举报
回复
回7楼的老师,type属性改为button后,所有问题迎刃而解了。 但是,我还是没有弄明白:sumbit和button,为什么有如此大的区别呢?
EVKJ 2013-10-19
  • 打赏
  • 举报
回复
仔细检查一下代码,获得将input的type属性改为button试一下,之前我也遇见过同样的问题。
xilaianzxsc 2013-10-19
  • 打赏
  • 举报
回复
回5楼的老师: 在onclick时,加上二个alert,是能够得到响应的。 但是,在下列函数中,加入alert,得不到响应。 function updatepage() { if (request.readyState == 4 && request.status==200) { var response=request.responseText; alert(1); //此行在onblur时响应,在onclick时不响应 alert(request.responseText);////此行在onblur时响应,在onclick时不响应 document.getElementById("gysname").value = response }
KK3K2005 2013-10-19
  • 打赏
  • 举报
回复
function login_onblur() { alert(1); var yhid=document.getElementById("yhid").value; alert(yhid); var url="cheshi.asp?usercode="+yhid; request.open("GET",url,true); request.onreadystatechange=updatepage; request.send(null); } alert被执行了吗? 执行了就检查代码正确不 类似问题 要精确问题 不要模糊的说 不正确 或者 正确 象我 这样 加alert 或者相同的方式 调试 先定位 是代码问题 还是逻辑问题 调试的优先级要高于提问

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧