日期:2014-05-18  浏览次数:20508 次

用了AjaxPro.2的进来看看,这个参数的问题!!!
在用户注册的时候,会在离开用户名输入框(表单名是a),也就是失去焦点的时触发checkusername事件自动检查该用户名是否被占用。如果被占用,提示用户,并且焦点自动回到用户名的输入框。

JScript code

        function checkusername(a)//a是一个text标签,为了检测输入的用户名是否被占用
        {//传入a.value,也就是输入的用户名
        DemoMethods.checkusername(a.value,doAjaxCallback);
        //传递参数给服务器,据说doAjaxCallback这样可以达到异步的效果,
        }
        function doAjaxCallback(req)
        {
          if(req.value=="yes");//得到CALL服务器的返回值,判断用户名是否被占用
           {
           alert("用户名已经被占用,请更换");
             //怎么在这个时候做输入框重新获得焦点的动作,怎么把a这个参数传递进来呢
           }

        }




不知道大家明白这个意思了没有,不是很容易说清楚

------解决方案--------------------
控件:<input id="Text1" type="text" onfocusout="checkusername(this)"/> 

function checkusername(a)//a是一个text标签,为了检测输入的用户名是否被占用
{//传入a.value,也就是输入的用户名
var str=DemoMethods.checkusername(a.value);
if(str.value=="yes");//得到CALL服务器的返回值,判断用户名是否被占用
{
alert("用户名已经被占用,请更换");
}

}

后台 :protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(DemoMethods));

}
 /// <summary>
/// 在页面显示报案人查看信息
/// </summary>
/// <param name="nametext"></param>
/// <returns></returns>
[AjaxPro.AjaxMethod]
public string checkusername(string name)
{
DataTable dt=//检索数据库姓名的方法
string result="";
if(dt.rows.count>0)
{
result="yes";
}
else
{
result="no";
}
return result;
}