[英]How to checkbox enable/disable with Struts 2
我想在我的页面中显示 2 个复选框(称为box1
和box2
)。 默认值为box1 = false
和box2 = 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.