Esiste un supporto integrato in jQuery per il controllo dell'asserzione di base, principalmente di "numero previsto di elementi restituiti".jQuery assertion support/programmazione difensiva?
Per esempio io possa avere una dichiarazione semplice come questo:
$("#btnSignup").click(function() {
return validateForm();
);
Ora c'è un sacco di motivi per cui $("#btnSignup")
potrebbero non tornare esattamente 1 articolo:
- È sbagliato a digitare il nome id tasto
- Qualcuno lo ha rinominato per errore
- Non esiste nella pagina
- Ci sono DUE elementi con quell'id per errore
- Si sta utilizzando ASP.NET MVC e l'HTML generato per il pulsante è stato generato accidentalmente con
HtmlHelper.Button(...)
anzichéHtmlHelper.Submit()
. Il metodoButton(...)
NON crea un ID per l'elemento button.
Ora in questa istanza (e molte istanze) la mia applicazione semplicemente non funzionerà a meno che ESATTAMENTE un elemento non venga restituito dal selettore. Quindi voglio SEMPRE essere informato se $("@#btnSignup")
non restituisce esattamente 1 elemento. Quindi, come posso fare questo ?! Sto bene se questa è un'eccezione o preferibilmente una casella di avviso - quindi se non sto correndo in un debugger allora posso dirlo.
Sto cercando una sintassi simile a questa, che è simile nella funzionalità al metodo di estensione .NET Single()
.
$("#btnSignup").assertSingle().click(function() {
return validateForm();
);
or
$("#btnSignup").assertSize(1).click(function() {
return validateForm();
);
Sarei personalmente bene per questo codice per eseguire SEMPRE e dire chi è lì che c'è un problema. ovviamente non è un performance issue per eseguire questo codice aggiuntivo per l'eternità. In questo caso il mio codice è rotto se #btnSignup
non esiste.
Sono sicuro che questo problema è stato picchiato a morte e ci sono molte soluzioni - ma qualcuno può indicarmi qualcuno di loro?
Non vedo nulla di costruito in jQuery e mi chiedo quale sia il miglior plugin. Preferirei avere qualcosa sulla pagina che possa continuare a "guardarmi" e dirmi se c'è un problema. Non sarei nemmeno contrario a una chiamata AJAX a un servizio di segnalazione degli errori.
Non che la mia vita dipenda da questo, ma un voto ascendente/acce pt sarebbe carino, tuttavia. ;-) – Tomalak
@tomalak sai che in realtà penso di aver fatto clic su di esso, ma penso che fosse perché il mio intentet era traballante e ero troppo impegnato a provarlo per notare che il tuo voto non è andato a buon fine. Avevo 7kb/s in upstream e 58.34kb/s in downstream su un modem via cavo. In entrambi i casi sei il benvenuto e grazie ancora! –
Internet ancora instabile? ;) – Tomalak