2016-11-08 4 views
1

私はScalaのPlayフレームワークを使用しています。
私は、フォームからの2つのオプションを選択できます。このラジオボタンを持っている:Scala Playの複数のラジオボタンオプションに `onclick`イベントを適用する方法は?

@helpers.inputRadioGroup(searchForm("options"), Seq("option1" -> "Option 1", "option2" -> "Option 2")) 

私もhelpersを使用して、どのオプションあなたのに応じて、Googleアナリティクスにデータを送信onclickイベントがありいない別のフォームを持っています選択:

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

私の質問は、私が最初の例に2つ目のフォームのonclickイベントを適用しない方法ですか? (プレイ2.3用)例えば、ここに記載されているよう

+0

代わりにJavascript/jQueryを使用できませんでしたか?ラジオにクラス名を追加し、Googleアナリティクスイベントを処理するonClick javascript関数を持っています。 –

+0

私はJavascript/jQueryに慣れていません。私はそれをどうやって行うことができるのでしょうか? @RobertUdah – DarthBinks911

答えて

3

inputRadioGroupのようなヘルパーオブジェクトのそれぞれがapply方法があります。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は、SymbolおよびAnyのペアの形態である。したがって、次のようにタグを書き換えることができます:

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