Je suis en train de convertir un site Web existant pour utiliser un cadre MVC et entité.
La mise en page / le style est supposé rester de même, et afin de suivre cette ligne directrice, je dois soumettre mon formulaire de connexion Utilisation d'une balise Voici mon formulaire: P> code>, car il a une image personnalisée pour le bouton. P>
@using (Html.BeginForm("Login", "Login", FormMethod.Post, new { id = "login", action = "Login" }))
{
<label>
<span>Username
</span>
<input type="text" name="UserName" id="UserName" class="input-text required" />
</label>
<label>
<span>Password
</span>
<input type="password" name="Password" id="Password" class="input-text required" />
</label>
<label>
<input type="checkbox" name="RememberMe" id="RememberMe" class="check-box" />
<span class="checkboxlabel">Remember Me</span>
</label>
<div class="spacer">
<a href="javascript:void(0)" onclick="login();" class="login-button"></a>
</div>
}
3 Réponses :
Généralement, vous ne voulez pas mettre beaucoup de JavaScript dans des balises HTML, mais si cela ne se produit qu'une fois dans votre solution, tout ira bien. Si toutefois, il y a des balises d'ancrage partout pour poster à l'aide de la solution de Gokan fonctionnerait mieux avec une classe de marqueur et une classe JavaScript dans un lieu commun.
changer votre étiquette d'ancrage pour ressembler davantage à ceci: p>
<a href="javascript:$('form').submit();" class="login-button"></a>
Merci! Généralement, vous ne voulez pas mettre beaucoup de JavaScript dans des balises HTML, mais si cela ne se produit qu'une fois dans votre solution, tout ira bien. Si toutefois, il y a des balises d'ancrage sur toute la mesure où la solution de Gokan fonctionnerait mieux avec une classe de marqueur et un javascript dans un lieu commun.
-1: C'est le pire moyen possible d'attacher un comportement basé sur JavaScript à une balise.
@ Tereško je suis en désaccord. Avoir le code disjoint en cours d'exécution sur place pour un seul cas d'angle peut causer plus de problèmes que sa valeur. Même si ce n'est peut-être pas le moyen le plus «accepté», parfois le plus simple est le plus maintenu. Mais si vous avez une autre solution, veuillez le sauvegarder, être constructif et non seulement son horrible.
J'ai fabriqué de petits changements
html p> jQuery p> jsfiddle p> p>
Il suffit de changer Optimisation code> strong> Je pense que celui-ci est un meilleur moyen.
@using (Html.BeginForm("Login", "Login", FormMethod.Post, new { id = "login", action = "Login" }))
{
// your HTML code
<div class="spacer">
<a href="" onclick='$("#login").submit()' class="login-button"></a>
</div>
}
Votre spécification indique-t-elle spécifiquement que vous ne pouvez pas modifier une balise d'ancrage à une étiquette de bouton? Parce que je veux dire, les boutons permettent également des images. Ce serait probablement un Tweak mineur au CSS plutôt que de devoir utiliser JavaScript pour soumettre un formulaire.