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