我尝试获取日期/时间类型的编辑框的值。如果我用
getComponent("dateField").value
或者
getComponent("dateField").getSubmittedValue();
并将输出打印到控制台。如果字段为空或字段不包含有效日期,它总是返回“null”。因此,我无法区分无效输入和空输入。
如果该字段为空,是否有办法获取信息?
我尝试获取日期/时间类型的编辑框的值。如果我用
getComponent("dateField").value
或者
getComponent("dateField").getSubmittedValue();
并将输出打印到控制台。如果字段为空或字段不包含有效日期,它总是返回“null”。因此,我无法区分无效输入和空输入。
如果该字段为空,是否有办法获取信息?
这取决于您正在测试的刷新阶段。
getValue()
将始终返回空白,因为只有可以转换为基础数据类型的内容才会传递给它。即使您禁用验证,转换器检查仍会运行,因为如果您尝试将“这不是日期”放入日期/时间,则会发生严重错误。
getSubmittedValue()
如果您正在检查 Invoke Application 或 Render Response 阶段,将始终为 null。这是因为在更新模型值阶段,该submittedValue
属性被传递给该value
属性并且该submittedValue
属性为空。
如果您正在签入验证器,则用户输入的文本值尚未根据验证规则(验证)进行检查,或者它可以转换为正确的数据类型(转换),因此getValue()
将返回上次存储的值舍getSubmittedValue()
入并给出字符串值(例如“这不是日期”)。
所以答案是您应该能够判断验证器中的字段是否为空,但请记住,自定义验证器仅在您还具有必需的验证器时运行。