2010-03-06 7 views
0
<form action="#" id = "form1">  
    <input type="submit" value="submit" /> 
</form> 
<input type="button" onclick="$('#form1').submit();" value="submit2" /> 
<script type="text/javascript"> 
    Sys.UI.DomEvent.addHandler(
     document.getElementById("form1"), 
     'submit', 
     function() { alert("abc"); return false; } 
     ); 
</script> 

Lorsque je clique sur submit2, il n'alert pas, pourquoi?problème avec jQuery et MicrosoftAjax

Et comment puis-je résoudre ce problème?

+0

Pourquoi ne pas utiliser jQuery complètement, au lieu de cela (pour moi) étrange 'Sys.UI.DomEvent'? –

+0

J'ai juste simplement la question. La validation du client ASP.NET MVC 2 utilise MicrosoftAjax.js. – ldp615

+0

C'est un modèle extensible, vous pouvez utiliser ce que vous voulez pour la validation côté client, par exemple: http://blogs.msdn.com/pietrobr/archive/2009/10/03/asp-net-mvc-2- preview-2-client-validation.aspx –

Répondre

0
$("form").bind("submit", function(e){ 
    var formContext = this[Sys.Mvc.FormContext._formValidationTag]; 
    if(formContext != null) formContext._form_OnSubmit(e); 
}); 
0

Cela ne pas déclencheur d'un soumettre de la forme:

<input type="button" onclick="$('#form1').submit();" value="submit2" /> 

De la documentation jQuery: « Remarque: Cela n'exécute pas la soumettre méthode de l'élément de forme! Si vous devez soumettre le formulaire par code, vous devez utiliser la méthode DOM, par exemple. $("form")[0].submit(); '

+0

Soin de lien où vous avez trouvé cela? Il n'est pas ici: http://api.jquery.com/submit/ –

+1

Le jQuery "submit()" est équivalent à "trigger ('submit')", donc c'est différent d'appeler le formulaire "natif" submit. Plus précisément, il fera n'importe quel type de gestionnaire jQuery, puis (si les gestionnaires n'ont pas tué l'événement) appellera la fonction native. La fonction "submit" câblée dans le navigateur ne fera que soumettre le formulaire et n'appellera aucun gestionnaire d'événements. (Je sais que vous le savez, @Nick, mais il y a peut-être de jeunes enfants qui lisent ceci.) – Pointy

+0

Franchement, je ne sais pas. J'ai un fichier pdf flottant là où j'ai trouvé cette ligne et j'ai juste fait confiance à elle - il ne semble pas être une documentation officielle, cependant. Selon le lien que vous avez posté, il semble y avoir eu un changement dans jQuery 1.4: 'à partir de jQuery 1.4, qui a normalisé le comportement de l'événement'. (quoi que cela signifie, en détail). – mnemosyn