Ext.getCmp.value的问题

benbenming 发布于 2013/12/17 17:49
阅读 4K+
收藏 0

var qForm = new Ext.form.FormPanel({
      region : 'north',
      title : '<span class="commoncss">新增采购计划<span>',
      collapsible : true,
      border : true,
      labelWidth : 50, // 标签宽度
      // frame : true, //是否渲染表单面板背景色
      labelAlign : 'right', // 标签对齐方式
      bodyStyle : 'padding:3 5 0', // 表单元素和表单面板的边距
      buttonAlign : 'center',
      height : 112,
      items : [{
       layout : 'column',
       border : false,        items : [{
columnWidth : .33,
layout : 'form',
labelWidth : 60, // 标签宽度
defaultType : 'textfield',
border : false,
items : [{
fieldLabel : '合同编号',
id : 'htbh',
name : 'htbh',
allowBlank : false,
emptyText : '请输入合同编号',
anchor : '100%'
}]
}
这个代码为啥用Ext.getCmp('htbh').value不能取到填写的值呢?大侠们给指点一下。

加载中
0
blinkfox
blinkfox
这样获取 :qForm.getForm().findField("htbh").getValue();
Ext中id和name的最好不要一样,有时候会有问题,用name表示就行了,Ext会为每个组件都默认设置一个ID值的。
0
工作流流流流流
工作流流流流流

楼上的答案可能同样会获取不到值

获取不到值得原因是因为当前textfield还没有render渲染到页面上,你就开始通过id获取对象了,所以会出问题没有值更没有这个对象。 你的方法输出结果应该为undifined。

获取方法很多,你应该检查你的代码。

0
benbenming
benbenming

引用来自“X-四er”的答案

楼上的答案可能同样会获取不到值

获取不到值得原因是因为当前textfield还没有render渲染到页面上,你就开始通过id获取对象了,所以会出问题没有值更没有这个对象。 你的方法输出结果应该为undifined。

获取方法很多,你应该检查你的代码。

我把结果输出了是空,不是undifined。同样的方式如果我换成numberfield类型就没有问题。

现在我的处理方式是将getCmp().value改为getCmp().getValue(),这样就可以正常获取的value的值。

0
工作流流流流流
工作流流流流流

引用来自“benbenming”的答案

引用来自“X-四er”的答案

楼上的答案可能同样会获取不到值

获取不到值得原因是因为当前textfield还没有render渲染到页面上,你就开始通过id获取对象了,所以会出问题没有值更没有这个对象。 你的方法输出结果应该为undifined。

获取方法很多,你应该检查你的代码。

我把结果输出了是空,不是undifined。同样的方式如果我换成numberfield类型就没有问题。

现在我的处理方式是将getCmp().value改为getCmp().getValue(),这样就可以正常获取的value的值。

很奇葩, getCmp获取的id返回类型为Ext内置对象,可直接调用该对象的方法getValue()

但是同时他有属性value也可以直接获取到值

如果说因为value获取不到值而getValue()能获取到值就真的奇葩了。

获取值为空那是因为你在声明时指定的value为空或者没有指定,就好比java中获取字符串和数字类型相同。

返回顶部
顶部