2017-01-04 2 views
-5

Ich habe diese Funktion.Warum diese Funktion den Server laden?

Es ist eine Validierung für Registerseite, müssen überprüfen, ob das Datum gültig ist.

Ich habe eine andere Funktion, die gut funktioniert und nicht ausgeführt wird, wenn die Validierung fehlschlägt.

Ich dachte, vielleicht ist es in der Validator selbst, aber wie ich schon sagte, ich habe eine andere Funktion (und einen anderen Validator, der die andere Funktion aufruft), die gut funktionieren und ich habe es nicht geschafft, Unterschiede zu finden.

CODES:

Failing Funktion:

function CheckDate(sender, args) 
     { 

      var DateReg = document.getElementById("DateReg").value; 
      DateReg = DateReg.split('/'); 

      var day = DateReg[0]; 
      var month = DateReg[1]; 
      var year = DateReg[2]; 


      var CurrentYear = new Date().getFullYear(); 

      args.IsValid = true; 

     if (day < 1 || day > 31 || month < 1 || month > 12 || year > CurrentYear || year < CurrentYear - 120) 
      { 
      args.IsValid = false; // לא תקין 
     } 

      return args.IsValid; 
     } 

Failing Validator:

 <asp:CustomValidator ID="CustomValidator1" ClientValidationFunction="CheckDate" runat="server" ErrorMessage="type age again">&nbsp;</asp:CustomValidator> 

Arbeits Validator:

  <asp:CustomValidator ID="CustomValidator2" ClientValidationFunction="CheckInterest" runat="server" ErrorMessage="choose interest">&nbsp;</asp:CustomValidator> 

Irgendwelche Vorschläge?

Dank

+0

Sie lesen einen nicht vorhandenen Array zu arbeiten 'date' und Sie setzen nicht' Tag irgendwo. –

+0

@ChrisG Bearbeitet, nachschlagen –

+0

Ihr gültiges Datum wird keine ungültigen Daten erfassen. "2/31/2018" wäre bei Ihrem Scheck gültig. – epascarello

Antwort

0

Ok; Verstanden

die getElementById hat es

es geändert zu

var DateReg = document.getElementById('<%=DateReg.ClientID %>').value; 

scheint jetzt

0

Modifizierte Version, die auf ein Datum im Format "mm/tt /" validieren.

var btnRun = document.getElementById("btnRun"); 
 

 
btnRun.addEventListener('click',function(e){ 
 
    CheckDate(); 
 
}); 
 

 
function CheckDate(sender, args) 
 
    { 
 
      var isValid = false; 
 
      var DateReg = document.getElementById("DateReg").value; 
 
      var date = new Date(DateReg); 
 
      var cDate = new Date(); 
 
      var CurrentYear = cDate.getFullYear(); 
 
      isValid = true; 
 
      var iday = date.getDay() + 1; 
 
      var iMonth = date.getMonth() + 1; 
 
      var iYear = date.getFullYear(); 
 

 
     if (iday < 1 || iday > 31 || iMonth < 1 || iMonth > 12 || iYear > CurrentYear || iYear < CurrentYear - 120) 
 
      { 
 
       isValid = false; 
 
      } 
 
      console.log(isValid);//just used to show that it works 
 
      return isValid; 
 
     }
<input id="DateReg" /> 
 
<button id="btnRun">Run</button>

Verwandte Themen