La mia app MVC sta generando il seguente codice HTML che causa un errore di sintassi JavaScript al momento dell'invio (non sto digitando nulla nelle due caselle di testo). Ecco il codice HTML generato e il gestore conferma:Errore di sintassi con parseJSON durante la convalida non invadente
<form action="/UrIntake/Save" id="UrIntakeForm" method="post">
<input data-val="true" data-val-length="The field LastName must be a string with a maximum length of 50." data-val-length-max="50" data-val-required="The LastName field is required." id="FormSubmitter_LastName" name="FormSubmitter.LastName" type="text" value="" />
<input data-val="true" data-val-length="The field FirstName must be a string with a maximum length of 50." data-val-length-max="50" data-val-required="The FirstName field is required." id="FormSubmitter_FirstName" name="FormSubmitter.FirstName" type="text" value="" />
<div id="SubmissionButtons" class="right">
<input type="button" onclick="SubmitForm()" value="Submit" />
<input type="button" onclick="CancelForm()" value="Cancel" />
</div>
</form>
function SubmitForm() {
$("#UrIntakeForm").valid();
.
.
.
Questo è il codice jQuery in cui l'errore di sintassi si verifica (v1.9.0). "Dati" non è definito e la linea di "ritorno" è dove si verifica l'errore:
parseJSON: function(data) {
// Attempt to parse using the native JSON parser first
if (window.JSON && window.JSON.parse) {
return window.JSON.parse(data);
}
Presumibilmente, non ho nulla di entrare nelle caselle di testo (e dovrebbe quindi ottenere il messaggio "campo è obbligatorio"). È questo che sta causando l'errore? Non ha senso, ma non vedo cos'altro potrebbe essere.
Non credo che l'errore è distinguibile da quello che si sta mostrando qui. Prova a inserire un punto di interruzione nel codice jQuery in cui si verifica l'errore e guarda indietro attraverso la traccia dello stack per vedere da dove viene chiamato. Questo ti darà indizi sul motivo per cui null viene passato a questa funzione. – Jerry
Lo farà. Quando scopro qualcosa di utile, tornerò. Grazie. – birdus
Si prega di votare qui in modo che Microsoft lo corregga AL PIÙ PRESTO: http://connect.microsoft.com/VisualStudio/feedback/details/776965/please-support-jquery-v1-9-0-properly-in-jquery-validate-unobtrusive –