Html 如何将“onclick”事件应用于Scala Play中的多个单选按钮选项?
我正在Scala中使用Play框架Html 如何将“onclick”事件应用于Scala Play中的多个单选按钮选项?,html,forms,scala,playframework,google-analytics,Html,Forms,Scala,Playframework,Google Analytics,我正在Scala中使用Play框架我有一个单选按钮,您可以从表单的两个选项中进行选择: @helpers.inputRadioGroup(searchForm("options"), Seq("option1" -> "Option 1", "option2" -> "Option 2")) 我还有另一个表单,它不使用helpers,并且有onclick事件,根据您选择的选项将数据发送到Google Analytics: <form> <input typ
我有一个单选按钮,您可以从表单的两个选项中进行选择:
@helpers.inputRadioGroup(searchForm("options"), Seq("option1" -> "Option 1", "option2" -> "Option 2"))
我还有另一个表单,它不使用helpers
,并且有onclick
事件,根据您选择的选项将数据发送到Google Analytics:
<form>
<input type="radio" name="option1" onclick="ga('send', 'event', { eventCategory: 'searchForm', eventAction: 'options', eventLabel: 'option1'})" value="@searchForm("options")">Option 1<br>
<input type="radio" name="option2" onclick="ga('send', 'event', { eventCategory: 'searchForm', eventAction: 'options', eventLabel: 'option2'})" value="@searchForm("options")">Option 2<br>
</form>
选项1
选项2
我的问题是如何将第二个表单的
onclick
事件应用于第一个示例?像inputRadioGroup
这样的每个助手对象都有一个apply
方法,例如,对于play 2.3:
下面是应用的定义:
def apply(
field: Field,
options: Seq[(String, String)],
args: (Symbol, Any)*)(
implicit handler: FieldConstructor, lang: Lang):
play.twirl.api.HtmlFormat.Appendable
然后是文档中的一个示例
@inputRadioGroup(
contactForm("gender"),
options = Seq("M"->"Male","F"->"Female"),
'_label -> "Gender",
'_error -> contactForm("gender").error.map(_.withMessage("select gender")))
我们看到标记属性以一对符号和任意的形式提供为varargs
。因此,我们可以将您的标签重写如下:
@helpers.inputRadioGroup(
searchForm("options"),
Seq("option1" -> "Option 1", "option2" -> "Option 2"),
'onclick -> "ga('send', 'event', { eventCategory: 'searchForm', eventAction: 'options', eventLabel: 'option1'})"
)
每个辅助对象(如inputRadioGroup
等)都有一个apply
方法,如本文所述(用于播放2.3):
下面是应用的定义:
def apply(
field: Field,
options: Seq[(String, String)],
args: (Symbol, Any)*)(
implicit handler: FieldConstructor, lang: Lang):
play.twirl.api.HtmlFormat.Appendable
然后是文档中的一个示例
@inputRadioGroup(
contactForm("gender"),
options = Seq("M"->"Male","F"->"Female"),
'_label -> "Gender",
'_error -> contactForm("gender").error.map(_.withMessage("select gender")))
我们看到标记属性以一对符号和任意的形式提供为varargs
。因此,我们可以将您的标签重写如下:
@helpers.inputRadioGroup(
searchForm("options"),
Seq("option1" -> "Option 1", "option2" -> "Option 2"),
'onclick -> "ga('send', 'event', { eventCategory: 'searchForm', eventAction: 'options', eventLabel: 'option1'})"
)
你不能用Javascript/jQuery来代替它吗?在收音机中添加一个类名,并使用onClick javascript函数来处理google analytics事件。我不熟悉javascript/jQuery,你有没有一个例子来说明我如何做到这一点@罗伯特:你不能用Javascript/jQuery来代替它吗?在收音机中添加一个类名,并使用onClick javascript函数来处理google analytics事件。我不熟悉javascript/jQuery,你有没有一个例子来说明我如何做到这一点@罗伯特达