html控件+JS+asp.net——无法检验用户名是否存在!

以下代码程序运行的时候,无论在文本框输入什么内容(无论数据库是否存在已有用户名),函数总返回true(如果不存在应返回false才对)!请各位大侠帮忙解困!

JS代码:

function checkYHM(field,T1,T2,T3)
{
var str = field.value;
var strT1 = document.getElementById(T1);
var strT2 = document.getElementById(T2);
var strT3 = document.getElementById(T3);

if (str==null||str==""){
strT1.style.display = "block";
}
else { 
var MyExistYHM = "<%=existYHM()%>";
if (MyExistYHM){
strT2.style.display = "block";
}
else {
strT3.style.display = "block";
}
}
}


浮云间
浏览 381回答 2
2回答

狐的传说

var MyExistYHM = "<%=existYHM()%>";这里写的有问题,本来服务器端的existYHM()返回的是个bool类型,值是true或者false。但在这里MyExistYHM是个字符串类型了,也就是var MyExistYHM="true";或者var MyExistYHM="false";也就是个字符串了,然后你js中的判断if (MyExistYHM)这里是这么写一定是有问题的啦,要么这里你就不要带"",要么你可以给这个变量做个类型转换,var MyExistYHM=new Boolean(MyExistYHM);然后再做判断...其次另一个问题就是existYHM()这个是服务器端的方法,页面加载时会执行完成,你再输入的时候页面不重新加载的前提下是不会执行的...

长风秋雁

你这个肯定是有问题的var MyExistYHM = "<%=existYHM()%>";只在开始的时候给绑定下数据,所以才会无论在文本框输入什么内容(无论数据库是否存在已有用户名),函数总返回true(如果不存在应返回false才对)!,也就是说这时候你无论再输入什么,都不会再调用existYHM()了。把 existYHM(),写成webmethod就行了,ajax调用。
打开App,查看更多内容
随时随地看视频慕课网APP