2013-08-26 11 views
13

Właśnie zacząłem od Play Framework i czekam na utworzenie pola wejściowego w szablonie scala, ale bez etykiety iz jakiegoś powodu nie jestem w stanie pozbyć się wygenerowanego elementu etykiety. Oto jak mój kod wygląda następująco:Odtwórz wejście struktury bez etykiety

@helper.inputText(form("name"), 'id -> "name", 'class -> "ui-state-default", 'autocomplete -> "off", 'placeholder -> "Please write name ...") 

więc skończyć z tym elemencie wraz z moim wejściu (patrząc na kodzie źródłowym przeglądarki):

<dt><label for="s2id_autogen2">name</label></dt> 

Czy jest jakiś sposób na usunięcie go?

+0

zobaczyć również oficjalne 'Odtwórz ramową API' dla' input type = "text" '(uważaj na wersji ramowej) https://www.playframework.com/ documentation/2.2.3/api/scala/index.html # views.html.helper.inputText $ –

Odpowiedz

6

Chyba trzeba by napisać własny konstruktor pola, np

@(elements: helper.FieldElements) 

<div class="@if(elements.hasErrors) {error}"> 
    <div class="input"> 
     @elements.input 
     <span class="errors">@elements.errors.mkString(", ")</span> 
     <span class="help">@elements.infos.mkString(", ")</span> 
    </div> 
</div> 

Więcej informacji tutaj: http://www.playframework.com/documentation/2.0/JavaFormHelpers

0

Jeśli nie przeszkadza etykieta jest w wygenerowanym źródła, ty można wygenerować pustą etykietę ustawiając '_label -> "" Jeśli nie chcesz jej w ogóle w DOM, musisz utworzyć konstruktora pola lub ręcznie wygenerować pola.

20

Moje rozwiązanie było:

@helper.inputText(form("name"), 
    'id -> "name", 
    'class -> "ui-state-default", 
    'autocomplete -> "off", 
    'placeholder -> "Please write name ...", 
    '_label -> null 
) 
+1

Zrobiłem to samo i mam wyjątek wskaźnika zerowego na linii deklaracji pola. Czy wiesz, skąd może pochodzić? Dzięki – c4k

+3

Sam znalazłem rozwiązanie, musisz zdefiniować '_label' jako null, a nie' label'. Edytowałem twoją odpowiedź;) – c4k

+6

Pozostawia to element etykiety w DOM –