在ascx中使用js找不到对象问题解决

我把验证代码,简单的验证为空放在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里。运行。根本不行。查看源码得知.TextBoxID,前面加上了
<input name="QuickForumLogin1:txtUserName" type="text" id="QuickForumLogin1_txtUserName" style="width:95px;" />


QuickForumLogin
ascx的名称。放到aspx里后自动后面加个1.
这样js无法找到FormtxtUserName
注:TextBox放在界面上的会加上QuickForumLogin1,如果是后台输出的将不会加上
解决1.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>

 

解决2.把你地控件用ClientID转换一下就可以了。例如
var tempSendTime= document.getElementById('<%=sendTime.ClientID%>');
这样tempSendTime就是你ascx中控间在aspx中的名字了。

转载于:https://www.cnblogs.com/hejunrex/archive/2010/01/20/1652070.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值