2012-09-14 6 views
0

J'utilise Ajax.BeginForm et souhaite transmettre des paramètres à la fonction appelée avec OnBegin. Voici deux extraits de code.ASP.NET MVC 3, Ajax.BeginForm, OnBegin et la validation de formulaire

new AjaxOptions 
{ 
    HttpMethod = "POST", 
    UpdateTargetId = "DataEntrySummary",     
    OnBegin = "ValidateForm(11,55)" 
} 

function ValidateForm(minAge, maxAge) {return false;} 

Les paramètres sont transmis correctement à la fonction ValidateForm mais la fonction renvoie toujours la valeur true.

Si je prends les paramètres et utiliser

OnBegin = "ValidateForm()" 
function ValidateForm() {return false;} 

Il fonctionne parfaitement et retourne false. Ai-je manqué quelque chose ou sont les paramètres non autorisés ici ou ...

Puzzled d'Oxford - merci d'avance. PS - Je ne peux pas utiliser les attributs C# et la validation discrète pour de très bonnes raisons (ces sont des extraits de code).

+0

http://stackoverflow.com/questions/4043765/modify-posted-input-values-on-onbegin-of-ajax-beginform – CrazyCoderz

Répondre

0

Je ne suis pas sûr comment le commentaire de CrazyCoderz se rapporte, mais il est lié d'une certaine manière.

Ce que j'ai trouvé est que quelque chose après le nom de la fonction provoque l'Ajax OBegin à retourner vrai. Cela inclut OnBegin = "ValidateForm()". [Mon erreur ci-dessus sur les parenthèses]

Je suis en train de mettre en œuvre un «contourner» - l'un des deux - soit écrire mon propre appel Ajax ou lire les attributs de l'élément d'entrée de test du formulaire pour obtenir les valeurs Je veux. Alors, merci CrazyCoderz pour m'avoir mis sur la voie d'une solution.

3

Utilisez

OnBegin = "return ValidateForm(11,55)" 

function ValidateForm(a,b) { 
    return a<b; 
} 
Questions connexes