6
votes

Modifiez la classe CSS d'une entrée sur une erreur de validation avec RAZOR

Dans mon application ASP MVC 3, j'ai ce formulaire

@using (Html.BeginForm())
  {
    <input id="Username" name="UserName" type="text" value="Username" class="form-text" />
    <input id="PasswordTxt" name="PasswordTxt" type="text" value="Password" class="form-text" />
    <input id="Password" name="Password" type="password" class="form-text" style="display: none"/>
    <input id="bt_login" type="submit" value="Log in" class="bt_login" />
    <div class="login_lbl_error">
      @Html.ValidationSummary()
    </div>
  }


6 commentaires

Avez-vous essayé d'utiliser JQuery pour changer de classe de Erreur de validation d'entrée à tout ce dont vous avez besoin?


Oh, je ne savais pas cette erreur de validation d'entrée, dois-je faire sur un certain événement?


Vous pouvez joindre un gestionnaire à l'événement Soumettre de votre formulaire, vous pouvez modifier toutes les entrées avec cette classe à Login_LBL_Error. Comme alternative, vous pouvez simplement utiliser "Erreur de validation d'entrée" :)


La question que je pense est ... Quand est-ce que ça tombe mal? Sur le bouton Cliquez avec la validation du client? ou après avoir reculé? Où faites-vous le chèque de validation?


@Musefan: Cela devient faux après la post-retour, je fais la vérification de la validation dans le contrôleur


MVC recommande de faire une manière spécifique, à l'aide de HTML.TextBoxfor, etc., où les noms de votre élément doivent correspondre à vos propriétés de modèle de vue. Vous devriez vérifier ça out


3 Réponses :


7
votes

avec MVC3, une classe d'entrée d'entrée-validation-erreur CSS sera automatiquement ajoutée aux éléments d'entrée qui ont des erreurs de validation.

donc dans votre CSS, vous pouvez styler cette classe: xxx


2 commentaires

Et il n'y a aucun moyen de remplacer ce nom de classe?


@AYYYASH Vous ne pouvez pas remplacer le nom de la classe CSS en tant que tel, mais vous pouvez obtenir des pouvoirs supplémentaires lorsqu'il y a une erreur. See my answer at Stackoverflow.com/Questtions/11468130/...



4
votes

Par défaut MVC ajoute une erreur d'entrée-validation-erreur et de validation de champ, vous pouvez utiliser JQuery pour remplacer ces classes:

p>

<script type="text/javascript">
    $(document).ready(function(){
        $('.input-validation-error').addClass('CustomErrorClass').removeClass('input-validation-error');
        $('.field-validation-error').addClass('CustomErrorClass').removeClass('field-validation-error');
    });
</script>


0 commentaires

1
votes

Etant donné que ASP.NET MVC ajoute la classe Erreur de validation de champ à l'élément de message d'erreur et Erreur d'entrée-validation-erreur Pour former des contrôles, je viens de changer le Nom de la classe utilisant jQuery: xxx


1 commentaires

Pourquoi cette réponse n'a-t-elle pas reçu mon attention? Cela semble beaucoup plus facile / plus rapide que de faire des aides de tags, mvchtmlingstrings, etc. J'ai fini par mettre ceci au début de mon MAIN.JS: $ ("erreur d'entrée-validation"). Removeclass ("entrée-validation-e Rror "). Addclass (" est-invalide "); $ ('. Erreur de validation sur le terrain'). Removeclass ("Validation sur le terrain-e rror"). AddClass ("Inv alid-feedback");