传递函数参数不起作用?

时间:2015-06-30 16:45:22

标签: javascript extjs console.log

我想将参数传递给函数,但是得到错误

  

无法读取未定义的属性?"

var getNow= function(combo) 
{
var checkValue= Ext.ComponentQuery.query('combobox[name=combo]')[0];
checkValue.isVisible();
};

//call it using this:
getNow("comboBoxName");

1 个答案:

答案 0 :(得分:1)

尝试

var checkValue= Ext.ComponentQuery.query('combobox[name=combo]')[0];

更改为

var checkValue= Ext.ComponentQuery.query('combobox[name=' + combo + ']')[0];

添加了代码段,看起来很有效,所以你必须提供更多信息。



var states = Ext.create('Ext.data.Store', {
    fields: ['abbr', 'name'],
    data : [
        {"abbr":"AL", "name":"Alabama"},
        {"abbr":"AK", "name":"Alaska"},
        {"abbr":"AZ", "name":"Arizona"}
    ]
});

Ext.create('Ext.form.ComboBox', {
    fieldLabel: 'Choose State',
    store: states,
    queryMode: 'local',
    valueField: 'abbr',
    name: "asd",
    renderTo: Ext.getBody(),
    // Template for the dropdown menu.
    // Note the use of the "x-list-plain" and "x-boundlist-item" class,
    // this is required to make the items selectable.
    tpl: Ext.create('Ext.XTemplate',
        '<ul class="x-list-plain"><tpl for=".">',
            '<li role="option" class="x-boundlist-item">{abbr} - {name}</li>',
        '</tpl></ul>'
    ),
    // template for the content inside text field
    displayTpl: Ext.create('Ext.XTemplate',
        '<tpl for=".">',
            '{abbr} - {name}',
        '</tpl>'
    )
});

var getNow= function(combo) 
{
var checkValue= Ext.ComponentQuery.query('combobox[name=' + combo+ ']')[0];
  
console.log(checkValue.isVisible()); // It returns true or false, then what you want it to do?
};

//call it using this:
getNow("asd");
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/extjs/4.2.1/ext-all.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/extjs/4.2.1/resources/css/ext-all.css" rel="stylesheet"/>
&#13;
&#13;
&#13;

除非您使用带有特殊字符串表示法的Es6,否则javascript的字符串不会为您解析值,因此此处未使用该组合。