2009-07-24 7 views
0

J'ai 3 zones de texte pour vérifier la date entrée. Le code que j'avais à l'origine était pour un textbox. Y at-il un moyen de transmettre un nom d'identification à l'événement onChangePuis-je transmettre le nom de l'ID dans un événement onChange pour une zone de texte?

<asp:TextBox ID="txtDate" runat="server" Width="110px" onChange="checkEnteredDate('txtDate')"></asp:TextBox> 

function checkEnteredDate(var textBox = new String();) { 
      var inputDate = document.getElementById(textBox); 
      //if statement to check for valid date 
      var formatDate = new Date(inputDate.value); 
      if (formatDate > TodayDate) { 
       alert("You cannot select a date later than today."); 
       inputDate.value = TodayDate.format("MM/dd/yyyy"); 
      } 
} 

Répondre

0

en fait, je compris. J'ai fait ce qui suit:

...onChange="checkEnteredDate(this)"... 

function checkEnteredDate(inputDate) {    
      //if statement to check for valid date 
      var formatDate = new Date(inputDate.value); 
      if (formatDate > TodayDate) { 
       alert("You cannot select a date later than today."); 
       inputDate.value = TodayDate.format("MM/dd/yyyy"); 
      } 
} 

getElement était en train de me gâcher. Merci pour les suggestions, ils m'ont amené dans la bonne direction.

2

Pour passer l'identifiant de la zone de texte que vous aurez à faire dans votre code se cache derrière Page_Load:

txtDate.Attributes["onchange"] = String.Format("checkEnteredDate('{0}');",txtDate.ClientID); 
2

Vous peut passer ce comme paramètre sur la cession onChange:

<asp:TextBox ID="txtDate" runat="server" Width="110px" 
onChange="checkEnteredDate(this.id)"></asp:TextBox> 
Questions connexes