簡體   English   中英

如何使用 Struts 2 啟用/禁用復選框

[英]How to checkbox enable/disable with Struts 2

我想在我的頁面中顯示 2 個復選框(稱為box1box2 )。 默認值為box1 = falsebox2 = false 但我還必須僅在box1 = true時啟用box2 所以我創建了以下 JS function:

function myTest() {
  var check = document.getElementById('box1');
  if (check.checked == false) {
    $('#box2').prop('disabled', true);
  } else {
    $('#box2').prop('disabled', false);
  }
}

現在我真的不明白如何在 JSP 文件中使用myTest function 。 我嘗試將它與onload="myTest()"一起使用,如下所示,但它不起作用( box2始終被禁用)。

<body onload="myTest()" />

<div class="form-group row">
    <label class="col-sm-3 col-form-label required">
        <s:text name="box1" />
    </label>
    <div class="col-sm-9">
        <s:checkbox id="box1" name="box1"> </s:checkbox>
    </div>
</div>
<div class="form-group row">
    <label class="col-sm-3 col-form-label required">
        <s:text name="box2" />
    </label>
    <div class="col-sm-9">
        <s:checkbox id="box2" name="box2"></s:checkbox>
    </div>
</div>

您似乎在頁面中使用了 jQuery。 這是我的解決方案。

<script type="text/javascript">
$( document ).ready(function() {
    // on page load unchecking and disabling box2
    $("#box2").prop("checked", false);
    $("#box2").prop("disabled", true);
});



$("#box1").on("change", function(){
    if ($(this).prop("checked")){
        // box1 is checked
        $("#box2").prop("disabled", false);
    }
    else{
        // box1 is not checked
        $("#box2").prop("checked", false);
        $("#box2").prop("disabled", true);
    }
});
 </script>

<s:checkbox>標簽onchange屬性,用於

在呈現的 html 元素上設置 html onchange 屬性

此標記生成一個簡單的checkbox類型的輸入字段。

呈現類型為checkbox的 HTML 輸入元素,由ValueStack中的指定屬性填充。

操作 bean 位於ValueStack之上,因此您可以在那里獲取指定的屬性。

要在 JSP 中定義 JS function,您應該使用 html <script>標簽。 您可以在<head>標記中或在呈現的元素之后執行此操作。

<s:checkbox id="box1" name="box1" onchange="myTest()"/>
<s:checkbox id="box2" name="box2" %{box1?'':'disabled="disabled"'}/>

<script>
  function myTest() {
    if ($(this).prop("checked") === "checked") {
      $("#box2").removeAttr("disabled");
    } else {
      $("#box2").attr("disabled","disabled");
    }
  }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM