我是一个菜鸟,最近在研究邮箱注册,
https://passport.sohu.com/web/dispatchAction.action?appid=1000&ru=http://login.mail.sohu.com/reg/signup_success.jsp
是搜狐的注册页面,第一个是输入框是用户名,当输入框失去焦点时,它会向服务端验证请求,并在下面显示不同的文字,但这是怎么做到的呢?
相关代码如下:
DIV class=blank5> </DIV>
<DIV class=cont760C>
<DIV class=b720Top> </DIV>
<DIV class=cont720B>
<DIV class=w440>
<DIV class=blank10> </DIV>
<UL>
<input type="hidden" name="registerid" value="" id="Passportregister_action_registerid"/>
<input type="hidden" name="appid" value="1000" id="Passportregister_action_appid"/>
<input type="hidden" name="autologin" value="1" id="Passportregister_action_autologin"/>
<input type="hidden" name="ru" value="http://login.mail.sohu.com/reg/signup_success.jsp" id="Passportregister_action_ru"/>
<LI class=w140> <span id="img_shortname"> </span>用 户 名: </LI>
<LI class=w300> <input type="text" name="shortname" value="" id="shortname" class="input03" onfocus="showdesc('shortname');" onblur="checkusername_shortname(this.value,$F('domain'),'1000');"/> <!-- <br/> <a href="#">查看用户名是否被占用 </a> </li>-->
@ <select name="user.domain" id="domain" onchange="checkusername($F('shortname'),this.value,'1000');gotoOtherreg();">
<option value="sohu.com">sohu.com </option>
</select>
<div style="color:red" id="shortnameerror"> </div>
</LI>
</UL>
</DIV>
<DIV class="w245 pad01" id=shortnamedesc> </DIV>
<DIV class=clear> </DIV>
</DIV>
<DIV class=b720Bot> </DIV>
</DIV>
<DIV class=blank5> </DIV>
<DIV class=cont760C>
<DIV class=b720Top> </DIV>
<DIV class=cont720B>
<DIV class=w440>
<DIV class=blank10> </DIV>
我在firefox下,用webdevlop查了下,当显示文字是“用户名不对”的对象信息是id="shortnameerror"
但这里它没有文字啊,它怎么做到呢,
请各位大侠指点
是通过Ajax从后台返回来的数据 然后显示在id="shortnameerror"上的~·
摇钱树网吧充值
但是我用在DOM模型处理页面时,前后却没有变化,老大能不能再指点指点,
在显示文字前,我用FF的查看源码, <div style="color:red" id="shortnameerror"> </div>,
显示文字后,我再用FF的查看源码, <div style="color:red" id="shortnameerror"> </div>没有变化。
在显示文字前,用webbrowser的document查看,没在节点,innertext为空
在显示文字后,再用webbrowser的document查看,没在节点,innertext为空
我不知道这是怎么实现的,服务端返回结果后,页面都做了什么,改变了什么,是不是webbrowser中的DOM不能反映动态的变化?还是需要进行设置,
我用HTTPwatch也查看了返回的结果,但就是不知道页面怎么处理的。
无非就是在onBlur事件上执行JS的结果嘛.如:
HTML code
<html>
<head>
<title>输入框判断</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script language="javascript">
function check(obj,msg,msgid){
var s = obj.value;
if( s.length < 1 ){ document.getElementById(msgid).innerText = msg + "不能为空!"; }
else{ document.getElementById(msgid).innerText=""; }
}
</script>
<style type="text/css">
body { font-size:12px; }
span { color:red; }
</style>
</head>
<body>
用户名: <input type="text" name="username" onBlur="check(this,'用户名','msg1')" /> <span id="msg1"></span> <br />
密 码: <input type="text" name="password" onBlur="check(this,'密码','msg2')" /> <span id="msg2"></span> <br />
</body>
</html>
我找到了,确实是显示在id="shortnameerror"上的,但为什么我用MS的DOM却访问不了呢?