如何在Play framework 2.0中切换表单元素可见性?

时间:2014-12-04 07:23:02

标签: html scala playframework-2.0

例如,我有一些看起来像这样的形式:

@main{
    <fieldset>
    @inputText(myForm"Id"),'_label -> "Id")
    @checkbox(myForm("isEnabled"))
    @inputText(myForm("someOptionvalue"))
    </fieldset>
}

我需要的是,如果选中isEnabled,则应显示someOptionValue inputText。 这个复选框只是一个例子,它可以是任何其他元素。我想知道如何根据其他元素显示\ hide元素。对不起,我的英语不好。我希望有人可以提供帮助。

添加我想我应该使用java脚本,但我不知道如何在播放视图模板中注入js函数

1 个答案:

答案 0 :(得分:0)

您使用的Play表格元素是用于生成普通HTML的Play Scala模板。

出于您的目的,我认为您应该像使用任何html表单一样使用javascript。一个例子是:

<script type="text/javascript">
  window.onload = function(e) {
    document.getElementById("myCheck").onclick = function() { 
      showHideElement();
    };
    showHideElement();
  }

  function showHideElement() {
    var checked = document.getElementById("myCheck").checked;
    var el = document.getElementById("myOptionValue");
    if (checked) {
      el.style.display = 'block'
    } else {
      el.style.display = 'none'
    }
  }
</script>

您的复选框和输入文本模板都应添加id属性,例如:

  @checkbox(myForm("isEnabled"), 'id -> "myCheck")
  @inputText(myForm("someOptionvalue"), 'id -> "myOptionValue")

仅供参考,您可以为上面的代码添加更多属性,例如CSS样式类,例如:

@inputText(myForm("name"), 
'id -> "username", 
'class -> "classForInputText",
'_id -> "idForTheTopDlElement",
'_class -> "classForTheTopElement",
'size -> 30
)

然后,您可以将显示设置为无或阻止