8
votes

Comment permettre la sélection de la valeur par défaut dans une aide @Select?

sous ma forme, j'ai défini une liste déroulante: xxx

dans mon code de contrôleur: xxx

la soumission du formulaire Ne me permet pas de sélectionner la valeur par défaut et Catform.haserrors () est vrai si je ne fais pas de sélection. Deux questions:

  1. Comment puis-je autoriser la valeur par défaut à sélectionner dans la liste déroulante?

  2. Je veux que la valeur par défaut soit -1 , où la définir? (Peut-être que c'est l'endroit où le problème est, il n'y a pas de valeur associée à - choisir une catégorie - option?)


0 commentaires

3 Réponses :


1
votes

Vous pouvez écrire une alternative à HTML HTML de la lecture qui accepte une tuple pour l'option par défaut. De cette façon, vous pouvez spécifier à la fois la valeur sous-jacente et le texte à afficher.

Voici un premier effort, une partie de la Scala ici est certes un peu amateur: p>

app / vues / _my_select.scala.html strong> p> xxx PRE>

UTILISATION STRAND> P>

@_my_select(
  myForm("category_id"),
  options(Category.options()),
  '_label -> "Category", 
  '_default -> ("-1" -> "-- Choose a category --"),
  '_showConstraints -> false
)


1 commentaires

Je reçois cette erreur -> Majeur Mismatch; trouvé: (play.api.data.field, SEQ [(String, String)], Array [(symbole, n'importe quel)]) => lecture.api.templates.html requis: vues.html.helper.fieldelements => Jouer .api.templates.html Remarque: la méthode implicite implicitfieldConstructor n'est pas applicable ici car elle vient après le point d'application et il manque de type de résultat explicite.



3
votes

suggestion Aviks fonctionne. Peut-être que vous n'avez pas importé le modèle correctement. Je l'ai fait comme ça. Tout d'abord, j'ai créé un CustomSelectField.scala.html strong> dans Vues / APPECTEUR /

@import helper._
@implicitField = @{
    FieldConstructor(helper.customField.f)
}


1 commentaires

Merci Jakob, je vais essayer et revenir si une aide supplémentaire est nécessaire.



1
votes

J'ai eu un problème similaire et j'ai trouvé une solution plus simple.
Au lieu de jouer! Les aides tentent à l'intérieur de votre formulaire:

<select name="category_id">
    <option value="-1">-- Choose a Category --</option>
    @(for((key, value) <- Category.options()){
        <option value="@value"> @key </option>
    }
</select>


1 commentaires

Merci arturas, va essayer