翱翔.Net

释放.Net的力量
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在ascx中使用js做验证时需要注意的小地方.

Posted on 2004-11-07 22:33  Hover  阅读(1839)  评论(3编辑  收藏  举报

解决页面包含两个用户控制且都有Form提交的时按钮验证事件混乱
接上篇。
我把验证代码,简单的验证为空放在ascx里了。按钮的单击事键也对应了checkForm()了。

<script language="JavaScript">
    
<!--
    
function checkForm(){
        
if (document.Form1.txtUserName.value.length == 0) {
            alert(
"请输入用户名.");
            document.Form1.txtUserName.focus();
            
return false;
        }    
   
       
    
return true
    }
    
-->
</script>
然后把ascx放到aspx里。运行。根本不行。查看源码得知.TextBox的ID,前面加上了
<input name="QuickForumLogin1:txtUserName" type="text" id="QuickForumLogin1_txtUserName" style="width:95px;" />
QuickForumLogin为ascx的名称。放到aspx里后自动后面加个1.
这样js无法找到Form的txtUserName。

把js的验证代码改成,,问题解决。通过查看生成的HTML.
<script language="JavaScript">
    
<!--
    
function checkForm(){
        
if (document.Form1.QuickForumLogin1_txtUserName.value.length == 0) {
            alert(
"请输入用户名.");
            document.Form1.QuickForumLogin1_txtUserName.focus();
            
return false;
        }    
    return true
    }
    
-->
</script>