以下代码程序运行的时候,无论在文本框输入什么内容(无论数据库是否存在已有用户名),函数总返回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";}}}
2 回答
狐的传说
TA贡献1804条经验 获得超3个赞
var MyExistYHM = "<%=existYHM()%>";
这里写的有问题,本来服务器端的existYHM()返回的是个bool类型,值是true或者false。但在这里MyExistYHM是个字符串类型了,也就是var MyExistYHM="true";或者var MyExistYHM="false";也就是个字符串了,然后你js中的判断if (MyExistYHM)这里是这么写一定是有问题的啦,要么这里你就不要带"",要么你可以给这个变量做个类型转换,var MyExistYHM=new Boolean(MyExistYHM);然后再做判断...
其次另一个问题就是existYHM()这个是服务器端的方法,页面加载时会执行完成,你再输入的时候页面不重新加载的前提下是不会执行的...
长风秋雁
TA贡献1757条经验 获得超7个赞
你这个肯定是有问题的
var MyExistYHM = "<%=existYHM()%>";只在开始的时候给绑定下数据,所以才会无论在文本框输入什么内容(无论数据库是否存在已有用户名),函数总返回true(如果不存在应返回false才对)!,也就是说这时候你无论再输入什么,都不会再调用existYHM()了。把 existYHM(),写成webmethod就行了,ajax调用。
- 2 回答
- 0 关注
- 380 浏览
添加回答
举报
0/150
提交
取消