2015-09-07 75 views
0

我想在Scala中为Play框架构建一个输入助手。如何定义复选框的自定义scala输入助手

我希望我的输入类型radiocheckbox的打印方式与标准的textpassword输入类型不同?

这里是我的自定义帮助:

@(elements: helper.FieldElements) 

<div class="form-group"> 
    <label for="@elements.id" class="col-lg-2 control-label">@elements.label</label> 
    <div class="col-lg-10"> 
     <input type="text" class="form-control" id="@elements.id" /> 
    </div> 
</div> 

但这打印出text input而不是checkbox input。这是奇怪的行为。

我已阅读文档,但无法找到任何有关它的信息。

这是我如何导入此helperview

@implicitFieldConstructor = @{ FieldConstructor(generic.views.html.FormHelpers.twitterBootstrapInputSupraClub.render) } 
@checkboxFieldConstructor = @{ FieldConstructor(generic.views.html.FormHelpers.twitterBootstrapInputSupraClubCheckbox.render) } 

这是我如何调用助手构建输入(生成输入)在view

@inputText(
    accountRegistrationForm("email"), 
    '_label -> "email" 
) 

@inputPassword(
    accountRegistrationForm("password"), 
    '_label -> password 
) 

@inputRadioGroup(
    accountRegistrationForm("regulationAcceptance"), 
    options = Seq("true"->"Yes"), 
    '_label -> "I agree with regulation", 
    'type -> "radio" 
)(handler = checkboxFieldConstructor, implicitly[Lang]) 

回答

1

我可能失去了一些东西在这里,但据我所知,你似乎错过了正确的输入类型。

在你的助手,请尝试更改<input type="text"...<input type="radio"...

可以动态传递的输入类型,太。例如

@(elements: helper.FieldElements, inputType: String) 

<div class="form-group"> 
    <label for="@elements.id" class="col-lg-2 control-label">@elements.label</label> 
    <div class="col-lg-10"> 
     <input type="@inputType" class="form-control" id="@elements.id" /> 
    </div> 
</div> 

编辑:

我有类似这样的单选按钮的东西:

因为我userDetailForm包含canLogOn:

"company" -> nonEmptyText, 
"canLogon" -> boolean, 
"canTrade" -> boolean, 

我创建视图的功能: radioSet(fieldName: String)

@radioSet(fieldName: String) = { 
    <label for="@fieldName">Can Logon</label> 
    <input [email protected] [email protected] type="radio" value = "true" 
    @if(userDetailForm(fieldName).value.getOrElse("false").equals("true")) 
    {checked}> 
} 

然后我把它当我需要它:

@radioSet("canLogon") 

我也得到:http://imgur.com/RG60wxV(对不起,我还不能发表图片)

+0

你可以给我@inputText(accountRegistrationForm('的一个例子”电子邮件“),'_label - >”email“)'用法与你的例子? – masterdany88

+0

看我上面编辑 –

+0

你的助手叫什么,你打电话给你怎么样? –