sous ma forme, j'ai défini une liste déroulante: dans mon code de contrôleur: p> 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: p> Comment puis-je autoriser la valeur par défaut à sélectionner dans la liste déroulante? p> li>
Je veux que la valeur par défaut soit
-1 code>, 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 - code> option?) P> li>
ol> p>
3 Réponses :
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>
@_my_select(
myForm("category_id"),
options(Category.options()),
'_label -> "Category",
'_default -> ("-1" -> "-- Choose a category --"),
'_showConstraints -> false
)
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.
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)
}
Merci Jakob, je vais essayer et revenir si une aide supplémentaire est nécessaire.
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>
Merci arturas, va essayer