在javascript中获取控件ID

时间:2009-11-09 15:47:49

标签: asp.net javascript

我创建了自己的代码,为asp.net中的TextBox控件提供日期屏蔽和验证。下面是代码。代码完美无缺。

function IsValidDate(ctrlID)    {         var validDate = true;

    var myT=document.getElementById("ctl00_ContentPlaceHolder1_CandidateResume1_TabContainer1_TabPanel2_Education1_"+ctrlID);
    var mm=myT.value.substring(0,2);
    var dd=myT.value.substring(5,3);
    var yy=myT.value.substring(6);

    if(mm!=0 && mm>12){
        myT.value=""; validDate=false;
    }
    else
    {
        if((yy % 4 == 0 && yy % 100 != 0) || yy % 400 == 0)
        {
            if(mm==2 && dd>29){
                myT.value=""; validDate=false;
            }
        }
        else
        {
            if(mm==2 && dd>28){
                myT.value=""; validDate=false;
            }
            else
            {
                if(dd!=0 && dd>31){
                    myT.value=""; validDate=false;
                }
                else
                {
                    if((mm==4 || mm==6 || mm==9 || mm==11) && (dd!=0 && dd>30)){
                        myT.value="";  validDate=false;
                    }
                }
            }
        }
    }

    if(validDate==false)
    {
        myT.style.backgroundColor='#FF0000';
        myT.focus;
    }
    else
        myT.style.backgroundColor='#FFFFFF';
}

function maskDate(ctrlID)
{
    var myT=document.getElementById("ctl00_ContentPlaceHolder1_CandidateResume1_TabContainer1_TabPanel2_Education1_"+ctrlID);
    var KeyID = (window.event) ? window.event.keyCode : 0;        
    if((KeyID>=48 && KeyID<=57) || KeyID==8)
    {
        if(KeyID==8)
            return;

        if(myT.value.length==2)
        {
            myT.value=myT.value+"/";
        }
        if(myT.value.length==5)
        {
            myT.value=myT.value+"/";            
        }
    }
    else
    {
        window.event.keyCode=0;
    }

}

问题 -

我将这些功能附加到文本框中 - TextBox1.Attributes.Add( “onfocusout在”, “IsValidDate( 'TextBox1中');”); TextBox1.Attributes.Add( “onkeypress事件”, “maskDate( 'TextBox1中');”);

如果你看一下javascript代码我收集了myT变量中的控件ID。我还使用Attributes.Add()

附加了js函数时传递了文本框的id

我的问题是我不想传递文本框的id,因为我已经附加了它。那就是我想把代码写成

TextBox1.Attributes.Add( “onfocusout在”, “IsValidDate();”); TextBox1.Attributes.Add( “onkeypress事件”, “maskDate();”);

我的问题是我怎样才能获得我在JS代码中附加这些函数的文本框的id。

注意:我不想在添加属性时通过控制名称或控制权限。请注意我想要替换

TextBox1.Attributes.Add( “onfocusout在”, “IsValidDate( 'TextBox1中');”); WITH TextBox1.Attributes.Add( “onfocusout在”, “IsValidDate();”); 我想用多个文本框来附加这些功能。

我正在使用.Attributes.Add(...)我想在JS CODE中获得相同的控制权。

非常感谢您的帮助。

谢谢和问候 穆罕默德·艾尔凡

3 个答案:

答案 0 :(得分:1)

var txtControl = document.getElementById(“&lt;%= txtControl.ClientID%&gt;”);

答案 1 :(得分:0)

Control.ClientID

答案 2 :(得分:0)

TextBox1.ClientID传递给函数,或将函数调用更改为IsValidDate(this.id)。但是因为你不想传递它们,你可以将TextBox1.ClientID放在你的javascript中或使用jquery使用$('[id * = TextBox1]')来找到它。