2012-03-26 1 views
0

J'ai deux zones de texte, une pour une date planifiée et l'autre pour une heure planifiée. Je veux passer la validation si les deux zones de texte sont vides, ou les deux ont du contenu. Je veux échouer à la validation si un seul a du contenu. Tout fonctionne correctement côté serveur et le code client suivant fonctionne correctement dans Chrome.La validation côté client ASP.NET 2.0 personnalisée ne fonctionne pas dans Internet Explorer

function CheckScheduledDateTime(sender, args) { 
     if (ctl00_MainContent_txtScheduledTime.value!="" || ctl00_MainContent_txtScheduledDate.value!="") 
     { 
      if (ctl00_MainContent_txtScheduledTime.value!="" && ctl00_MainContent_txtScheduledDate.value=="") 
      { 
       args.IsValid=false; 
       alert("Scheduled date is required"); 
      } 
      else if (ctl00_MainContent_txtScheduledTime.value=="" && ctl00_MainContent_txtScheduledDate.value1!="") 
      { 
       args.IsValid=false; 
       alert("Scheduled time is required"); 
      } 
      else 
      { 
       args.IsValid=true; 
      } 

     } 
     else 
     { 
      args.IsValid = true; 
     }   
    } 

Dans Internet Explorer, il ne fonctionne pas, et j'obtiens l'erreur suivante:

"Erreur d'exécution Microsoft JScript: 'ctl00_MainContent_txtScheduledTime' est pas défini"

La chose étrange est, avec il est cassé dans Visual Studio, si j'essaie alors de rentrer dans une fois de plus, il se casse de nouveau, mais si j'essaie d'y entrer une troisième fois, cela fonctionne, et la validation fonctionne correctement.

Quelqu'un peut-il nous éclairer à ce sujet?

+1

utilisez-vous document.getElementById ('ctl00_MainContent_txtScheduledTime')? –

+0

Ce code a été pris à partir du code rendu du navigateur, j'utilise '<% = txtScheduledTime.ClientID%>. Value' dans tous les endroits où vous voyez' ctl00_MainContent_txtScheduledTime.value', de même pour le champ date. Je n'utilise pas document.getElementById. – fourdam

+0

Passage à 'if (document.getElementById ('<% = txtScheduledTime.ClientID%>'). Value! =" "|| document.getElementById ('<% = txtScheduledDate.ClientID%>'). Value! =" ") 'a travaillé un régal, merci! – fourdam

Répondre

1

Vous pouvez l'utiliser comme ceci

ctl00_MainContent_txtScheduledTime ne sont pas des variables javascript jusqu'à ce que vous les initialisez en utilisant

var ctl00_MainContent_txtScheduledTime = document.getElementById('<%=txtScheduledTime.ClientID%>'); 

ou vous pouvez l'utiliser comme

(document.getElementById('<%=txtScheduledTime.ClientID%>').value!="" || document.getElementById('<%=txtScheduledDate.ClientID%>').value!="") 

Cordialement.

Questions connexes