【问题标题】:How to apply an `onclick` event to multiple radio button options in Scala Play?如何将“onclick”事件应用于 Scala Play 中的多个单选按钮选项?
【发布时间】:2017-03-21 23:56:20
【问题描述】:

我在 Scala 中使用 Play 框架。
我有一个单选按钮,可让您在表单中的两个选项之间进行选择:

@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>

我的问题是如何将第二个表单的 onclick 事件应用于第一个示例?

【问题讨论】:

  • 你不能用 Javascript/jQuery 代替吗?向收音机添加一个类名并具有一个 onClick javascript 函数来处理谷歌分析事件。
  • 我对 Javascript/jQuery 不熟悉,你有我怎么做的例子吗? @RobertUdah

标签: html forms scala playframework google-analytics


【解决方案1】:

inputRadioGroup 这样的每个辅助对象都有一个apply 方法,如此处所述,例如(对于play 2.3):https://www.playframework.com/documentation/2.3.x/api/scala/index.html#views.html.helper.inputRadioGroup$

这是apply的定义:

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 的形式提供为一对SymbolAny。所以,我们可以重写你的标签如下:

@helpers.inputRadioGroup(
  searchForm("options"),
  Seq("option1" -> "Option 1", "option2" -> "Option 2"),
  'onclick -> "ga('send', 'event', { eventCategory: 'searchForm', eventAction: 'options', eventLabel: 'option1'})"
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-01
    • 2012-12-21
    • 2012-10-09
    • 2013-02-24
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 2015-05-12
    相关资源
    最近更新 更多