2016-05-26 10 views
2

Ich habe ein sample fiddle wo ich versuche, Datumsformat alsvalidieren Datumsformat jQueryUI parseDate Methode

$('button').click(function() { 
    $('#error').text(''); 
    var dateParse = $.datepicker.parseDate("dd/mm/yy", $("#datepicker").val()); 
    if (dateParse) { 
     $('#error').text(dateParse); 
    } else { 
     $('#error').text('invalid date format'); 
    } 
    }); 

Aber der Fehler nicht angezeigt zu validieren. Was ist falsch im Code?

Antwort

2

Fehler wird nicht angezeigt, weil Fehler in parseDate() Funktion wegen ungültigem Datum auftritt. Sie müssen diesen Fehler zuerst behandeln. Hier ist jsFiddle

$(function() { 
 
    $("#datepicker").datepicker({ 
 
    dateFormat: 'dd/mm/yy', 
 
    }); 
 

 
    $('button').click(function() { 
 
    $('#error').text(''); 
 
    try { 
 
    var dateParse = $.datepicker.parseDate("dd/mm/yy", $("#datepicker").val()); 
 
    } catch (e) {} 
 
    if (dateParse) { 
 
     $('#error').text(dateParse); 
 
    } else { 
 
     $('#error').text('invalid date format'); 
 
    } 
 
    }); 
 
});
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 
<p>Date: 
 
    <input type="text" id="datepicker"> 
 
</p> 
 
<p id="error"> 
 

 
</p> 
 
<button> 
 
    Validate 
 
</button>

und ich schlage vor, dass Fehler zu zeigen, statt Ihrer benutzerdefinierten:

$(function() { 
 
    $("#datepicker").datepicker({ 
 
    dateFormat: 'dd/mm/yy', 
 
    }); 
 

 
    $('button').click(function() { 
 
    $('#error').text(''); 
 
    try { 
 
    var dateParse = $.datepicker.parseDate("dd/mm/yy", $("#datepicker").val()); 
 
    if (dateParse) { 
 
     $('#error').text(dateParse); 
 
    } 
 
    } catch (e) {$('#error').text(e);} 
 
    }); 
 
});
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 
<p>Date: 
 
    <input type="text" id="datepicker"> 
 
</p> 
 
<p id="error"> 
 

 
</p> 
 
<button> 
 
    Validate 
 
</button>

+0

Bingo ...! Ich habe vergessen "Versuch zu fangen" .. Ich wollte genau wie dein Vorschlag. Es gibt noch eine weitere Validierung und ich hoffe, es wurde nie erreicht. Beispielaustausch von Monat und Datum wie '05/07/2016' statt' 07/05/2016' für den 7. Mai :) – mpsbhat