• 在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="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中的名字了。

  • 相关阅读:
    大于00
    today
    10
    面试题flask
    开发者日志
    7月22日一天学的东西
    资料
    3333
    2222
    1
  • 原文地址:https://www.cnblogs.com/hejunrex/p/1652070.html
Copyright © 2020-2023  润新知