我创建了自己的代码,为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中获得相同的控制权。
非常感谢您的帮助。
谢谢和问候 穆罕默德·艾尔凡
答案 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]')来找到它。