【发布时间】:2014-03-21 12:28:13
【问题描述】:
我正在使用表单来编辑模型。我以 JSON 格式接收数据。这是我的问题: 我只在 INT: 1 或 0 中收到 Checkbox 的数据,我无法更改它。 JSON:
{ "checkboxValue": 1 }
ExtJS 模型中的该字段定义为 INT 类型。型号:
{name: "checkboxValue", type: Ext.data.Types.INT},
然后我以这种方式设置值:
formCmp.loadRecord(loadedStore.getAt(0));
并且我的复选框设置正确:当我收到 1 时,它被选中,0 - 未选中。
但是当我尝试以这种方式保存记录并将数据发送到服务器时:
form.updateRecord(form.getRecord());
record.save();
我需要 Checkbox 也有 INT 值 - 1 或 0。但它只有 BOOL 值 - true 或 false 所以当发送 JSON 时,该值是 NaN。
{
"checkboxValue": NaN
}
我认为,.updateRecord(..) 函数会遍历所有元素,当它到达复选框时,它会尝试获取值,值是 BOOL
有人知道如何将复选框的输出值设为 INT 吗?
【问题讨论】:
-
您说
updateRecord使其成为布尔值是正确的,因为 Ext 将您的 1 或 0 视为布尔值...根据文档:复选框的主要值是布尔值,指示是否选中了复选框。 所以我建议绕过updateRecord并滚动您自己的验证,或者尝试以某种方式使用inputValue。你在 JSON 中得到 NaN 的事实意味着无论如何都失败了...... -
我想,我得到 NaN 因为模型应该接收 INT 但接收到 true - BOOL。尝试使用
inputValue但没用,反正Ext.getCmp('meCheckbox').getValue()只是true 或false
标签: json extjs checkbox extjs4