java - 多个 AjaxCheckBox 无法控制 setEnabled
问题描述
我是使用 Wicket 框架的新手。
目前我正在努力设置setEnabled
. TextField
就我而言,我有两个TextField
可以控制使用AjaxCheckbox
. setEnabled
在我试用期间,我对第一个没有问题TextField
,但是当我添加第二个TextField
时AjaxCheckbox
,第二个不起作用,只有第一个。
有什么我错过的吗?
第一个
mobileNo = new TextField<String>("mobileNo", new PropertyModel<String>(getModelObject(), "mobileNo")) {
@Override
protected void onConfigure() {
setEnabled(mobileNoCheckBoxValue);
}
};
mobileNo.setOutputMarkupPlaceholderTag(true);
form.add(mobileNo);
AjaxCheckBox mobileNoCheckBox = new AjaxCheckBox("mobileNoCheckBox", new PropertyModel<Boolean>(this, "mobileNoCheckBoxValue")) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(mobileNo);
}
};
form.add(mobileNoCheckBox);
第二个
appliedAmount = new TextField<BigDecimal>("appliedAmount", new BigDecimalFormatProperty<BigDecimal>(getModel(), "appliedAmount")) {
@Override
protected void onConfigure() {
setEnabled(appliedAmountCheckBoxValue);
}
};
appliedAmount.setOutputMarkupPlaceholderTag(true);
form.add(appliedAmount);
AjaxCheckBox appliedAmountCheckBox = new AjaxCheckBox("appliedAmountCheckBox", new PropertyModel(this, "appliedAmountCheckBoxValue")) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(appliedAmount);
}
};
form.add(appliedAmountCheckBox);
解决方案
检查您的 HTML 代码并确保id
为<input type="checkbox" .../>
.
如果您id
的 HTML 模板中有属性,那么最好将其完全删除并让 Wicket 自动生成它。根据 HTML 规范,ID 必须是唯一的。但 Wicket 在使用 Ajax 发送值时也使用它们来查找 HTML 元素。我猜当您单击第二个复选框时,Wicket 会发送第一个复选框的状态,该状态不会切换。
推荐阅读
- c# - 在 C# 代码中用 LINQ 替换使用 MERGE 的 SQL 进程
- node.js - nodejs:使用 Postman 从 Mongodb 检索 base64 图像
- r - rollapplyr 学生跨列 t 检验
- powershell - Powershell错误输出
- reactjs - 多个文件上传反应
- cupy - AMD GPU 上的 CuPy 导致 ImportError
- c# - 有没有办法检查一个力是否被施加到一个物体上?
- sql - 每个总和都带有 WHERE 子句的 SUM 函数?
- asp.net - CORS Angular 10 ASP.Net
- python - 如果使用具有多个命令的类在 tkinter 中按下某个按钮,如何获取要更改的值