在 Extjs 开发中,getValue() 与 getRawValue() 是两个极易混淆的方法,它们究竟有何不同?下面通过一个具体示例,帮助你快速掌握两者差异。

{
xtype: 'datefield',
width: 100,
id: 'mydate',
format: 'Y-m-d',
value: new Date(),
msgTarget: 'side',
emptyText: '请选择日期。。。',
name: 'mydate'
}
假设你定义了一个日期选择控件,id 为 mydate。此时,直接访问 mydate.value 或调用 mydate.getValue(),返回的都是同一个日期对象,例如 Wed Mar 07 2007 00:00:00 GMT+0100。需要特别注意:这是一个对象,而非字符串。
若想将其格式化为可读的文本,可使用 mydate.formatDate(myDate.getValue()),输出结果为 2007-03-07。
而 mydate.getRawValue() 则直接返回控件界面上实际显示的内容,即用户肉眼所见的文本。由于格式已设为 Y-m-d,因此它直接给出 2007-03-07 这样的字符串,省去了手动格式化的步骤。
简而言之,getValue() 获取的是原始对象,适合后端数据处理;getRawValue() 获取的是显示文本,适合前端展示。具体选择哪个,取决于你是需要拿值进行运算,还是仅用于呈现给用户。
