comment valider la demande à l'aide onBegin en Ajax.Commencer Formulaire?
Question : Ce code n'est pas le tir de l' StartValidation function
. Pourquoi?
<html>
<head>
<script src="/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#frmUp').find("input[type = 'submit']").click(function () {
$('#frmUp').submit();
});
});
function StartValidation() {
return true;
}
</script>
</head>
<body>
<div>
@using (Ajax.BeginForm("UploadRequestFile", "FileUpload", new AjaxOptions
{
HttpMethod = "POST",
OnBegin = "return StartValidation();"
}, new { id = "frmUp" }))
{
<input type="submit" name="Submit" value="Submit" />
}
</div>
</body>
</html>
Exécution de balisage
<form method="post" id="frmUp" data-ajax-method="POST"
data-ajax-begin="return StartValidation();" data-ajax="true"
action="/fileupload/UploadRequestFile?Length=10">
<input type="submit" value="Submit" name="Submit">
</form>
OriginalL'auteur Imad Alazani | 2013-06-25
Vous devez vous connecter pour publier un commentaire.
Parce que vous semblez avoir souscrit à l'événement click du bouton submit, qui vous absolument n'avez pas besoin.
Tous vous avez besoin est de faire référence au jquery.unobtrsuive-ajax.js script pour AJAXify ceux Ajax.* helpers:
Vous undoubtefully de remarquer que j'ai ajouté une référence à la
jquery.unobtrusive-ajax.min.js
script pour le rendre ceux Ajax.* les aides faire ce que vous vous attendez à eux de le faire.Une autre remarque que j'ai à propos de votre code, c'est que vous semblez être tentant d'invoquer une action nommée
UploadRequestFile
sur leFileUpload
contrôleur. Compte tenu de ces noms, je peux supposer que vous tentez de charger un fichier sur le serveur (c'est juste que vous n'avez pas de montrer ou de dire que, dans votre question). Permettez-moi de vous dire rapidement, avant que vous vous énervez, que vous ne pouvez pas télécharger des fichiers à l'aide d'AJAX. Vous pouvez utiliser un plug-in comme Uploadify ou BlueImp Téléchargement de Fichiers ou si votre client navigateurs prennent en charge le HTML5 Fichier API, vous pouvez compter sur elle.onBegin
dit, selon la fonction est passée sera appelée avant le déclenchement de la requête. Je peux savoir Pourquoi mon code ne pouvait pas travailler? Merci encore.Votre code ne fonctionne pas parce que vous n'avez pas de référence à la jquery.unobtrsuive-ajax.js script à votre page. Et si vous ne le faites pas à quoi pensez-vous que l'Ajax.BeginForm helper va faire? Avez-vous regardé le code HTML généré? C'est juste une simple
<form>
tag. Et vous savez ce qui se passe lorsque vous cliquez sur le bouton submit d'un formulaire? Ce formulaire est transmis au serveur et le navigateur redirige à l'écart de la page en cours la suite de l'attribut action du formulaire. Tous les javascript simplement s'arrête en cours d'exécution lorsque vous rediriger à l'écart de la page en cours.C'est l'jquery.unotrbsusive.js le script qui va analyser le HTML5 données* les attributs émis par l'Ajax.* les aides dans les DOM et à vous abonner à la .événement d'envoi de ce formulaire et d'annuler l'action par défaut et envoyer une requête AJAX au lieu par sérialisation formulaire tous les champs de saisie et les envoyer au serveur. Le navigateur reste sur la page en cours. Il n'est pas redirigé loin plus à l'
/FileUpload/UploadRequestFile
adresse plus une fois que vous incluez ce script.vérifier mes mises à jour question. ce balisage est généré sans le discret référence u mentionné.
Voyez-vous le balisage? Voyez-vous la
data-ajax-method
,data-ajax-begin
etdata-ajax
attributs? C'est ce que l'Ajax.BeginForm helper faire. Il émet de ces attributs. Mais ces attributs signifie absolument rien pour le navigateur. C'est lejquery.unobtrsuive-ajax.js
script qui comprend et interprète. Sans ça, c'est juste normal<form>
élément dans le navigateur. Vous savez ce qu'est un<form>
élément est et comment il fonctionne en HTML (sans javascript)?OriginalL'auteur Darin Dimitrov