标签: extjs4.2

ExtJS 4.2.1不使用standardSubmit提交表单

我正在尝试通过post方法提交表单,使用extjs 4.2.1中的standardSubmit在新窗口中打开一个url

在getFields函数中,ext-all-debug.js抛出错误

getFields: function() {
    return this.monitor.getItems();
},
Run Code Online (Sandbox Code Playgroud)

未捕获的TypeError:无法调用null的方法'getItems'

在这里,显示器对象被示为空.

单击链接将打开一个包含表单的消息窗口.单击"是",表单必须在打开新窗口的情况下提交.

我的表格是:

initComponent: function() {
    var me = this;

    Ext.applyIf(me, {
        items: [
        {
            xtype: 'form',
            flex: 1,
            itemId: 'importForm',
            layout: {
                align: 'center',
                type: 'vbox'
            },
            bodyPadding: 20,
            standardSubmit: true,
            items: [
            {
                xtype: 'hiddenfield',
                itemId: 'user_id',
                fieldLabel: 'Label',
                name: 'user_id'
            },
            {
                xtype: 'label',
                itemId: 'formLabel',
                padding: 5,
                text: 'My Label'
            },
            {
                xtype: 'container',
                margin: '10 0 0 0',
                layout: {
                    align: 'middle',
                    pack: …
Run Code Online (Sandbox Code Playgroud)

extjs extjs4.2

1
推荐指数
1
解决办法
5441
查看次数

Ext.getCmp(id)或Ext.ComponentQuery.query(属性)

我是Extjs的新手并使用Extjs v4.2.0.要查找对象,我可以使用Ext.getCmp(id)或Ext.ComponentQuery.query(属性).哪个更好用,速度更快?

extjs extjs4.2

1
推荐指数
1
解决办法
9176
查看次数

maxLength属性不会阻止字符输入ExtJS MessageBox.prompt()

我在单击时显示提示,并且希望能够限制用户可以输入的字符数。在extjs文档中,我找到了有关maxLength属性的信息,听起来这正是我想要的。我发现如果将maxLength设置为所需的字符数限制,则extjs控件会自动限制我的字符数。到目前为止,情况并非如此,但是它似乎确实以某种方式验证了输入,因为当超出maxLength限制时,该文本框用红色勾勒出轮廓。这是我当前的代码:

var prompt, textArea;
prompt = Ext.MessageBox.prompt("Hello!", "Hint");
textArea = prompt.down('textarea');
textArea.maxLength = 140;
Run Code Online (Sandbox Code Playgroud)

las,这无法阻止用户输入超过140个字符。

有谁知道如何限制像这样的MessageBox中的字符数?或者有人可以告诉我为什么maxLength无法按我期望的方式工作?

谢谢

- 编辑 -

正如newmount指出的那样,看来正确的解决方案是在textarea标记上设置maxLength属性。这是w3学校的示例链接:http : //www.w3schools.com/tags/att_textarea_maxlength.asp

我的问题是选择正确的标签。对于ExtJS中的文本区域,它看起来像:

// true denotes multiline and causes Ext to use textarea tag for input
var prompt = Ext.MessageBox.prompt("Hello!", "Hint", "", "", true); 

prompt.textArea.inputEl.set({
    maxLength: 140
});
Run Code Online (Sandbox Code Playgroud)

似乎成功的一半是在生成的标签中选择正确的DOM元素。希望这对以后的人有所帮助!

注意: Opera或IE9及更早版本不支持maxLength属性(有关引用,请参见w3学校链接)。

html javascript extjs extjs4.2

1
推荐指数
1
解决办法
7648
查看次数

无法为Extjs文本字段设置setFocus

我是Extjs的新手.我有场的形式.我需要为特定领域设定焦点.这是我正在使用的代码.

var priceTFLme = {
    xtype: 'numberfield',
    id:'priceLme',
    fieldLabel: 'Price',
    name: 'price',
    value: bidOffer,
    minValue: 0,
    maxValue: 100,
    allowDecimals: true,
    decimalPrecision: 3,
    step: 0.005,
    vtype: 'natural'
};

var quantityTFLme = {
    xtype: 'textfield',
    id: 'quantityLme',
    fieldLabel: 'Quantity',
    value: '',
    editable: true,
    hasFocus: true,
    vtype: 'natural',
    listeners: {
        afterrender: function(field) {
            field.focus(false, 1000);
        }
    }
};

var formLME =  new Ext.FormPanel({
    labelWidth:  85,
    frame:true,
    id:'lmeHeaders',
    bodyStyle:'padding:10px 10px 0',
    defaults: {width: 225},
    defaultType: 'textfield',

    items: [quantityTFLme, priceTFLme ],

    buttons: [{
        id:'buyIdLME',
        handler: …
Run Code Online (Sandbox Code Playgroud)

javascript extjs extjs4.2

1
推荐指数
1
解决办法
3677
查看次数

idParam,idProperty和clientIdProperty有什么区别

我很好奇idProperty模型中的一个实现,读者中的一个idParam实现,然后是代理和clientIdProperty模型的实现

我们如何以正确的方式使用它们?

extjs extjs4 extjs4.2

1
推荐指数
1
解决办法
649
查看次数

如何取消 ExtJs 组合框列表中的文本换行?

这是我的代码:

function sim(proxy, data, delay) {
    if (typeof data !== 'string') {
        data = Ext.JSON.encode(data);
    }

    proxy.url = '/echo/json/';
    proxy.actionMethods.read = "POST";
    proxy.extraParams.json = data;
    proxy.extraParams.delay = typeof delay == 'undefined' ? 0 : delay;
}

Ext.define('MyStore', {
    extend:'Ext.data.Store',
    fields:['id','name'],
    proxy:{
        url:'whatever',
        type:'ajax',
        reader:{
            type:'json'
        }
    }
});

var myStore = new MyStore();

sim(myStore.proxy, [{id:2,name:'neil'},{id:3,name:'expert wanna-be expert wanna expert'}], 0);

Ext.define('MyForm', {
    extend: 'Ext.form.Panel',

   initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            items: [
                {
                    xtype: 'combobox',
                    editable:false,
                    store: …
Run Code Online (Sandbox Code Playgroud)

extjs4.2

1
推荐指数
1
解决办法
1880
查看次数

如何从ExtJs中的现有商店对象获取商店对象

我正在使用ExjJs 4.2.我有两个显示不同数据的网格.在一个javascript文件中,我必须包括两个网格.我正在为第一个网格加载商店

var store = Ext.create('Ext.data.Store', {
                model: 'Writer.Person',
                autoLoad: true,
                proxy: {
                    type: 'ajax',            
                    url : 'findPatientRecordAction',
                    reader: {
                        type: 'json',
                        successProperty: 'success',
                        root: 'data',
                        messageProperty: 'message'
                    },
                    writer: {
                        type: 'json',
                        encode: true,
                        root: 'data'
                    },
                    fields: ['id','notes', 'startDate', 'endDate'],
                },
            });
Run Code Online (Sandbox Code Playgroud)

JSON对象库如下所示:

"data":[{"id":35,"notes":"hiii","startDate":"2013-04-30","endDate":"2013-05-02"}]},"details" :[{ "ID":14, "文件": "docpath12345", "日期": "2013年4月28日"}]

实际上,第一个网格将仅显示JSON的"数据"部分,第二个网格将显示JSON的"详细信息"部分.理想情况下,我不应该为第二个网格再次加载商店对象(我现在正在做什么).我想再声明一个商店类型变量并重用'store'的值(商店的'documents'部分)成为将第二个网格存储为

我现在像这样加载第二家商店

var store2 = Ext.create('Ext.data.Store',{

                model: 'Writer.Document',
                autoLoad: true,
                proxy: {
                    type: 'ajax',            
                    url : 'findPatientRecordAction',
                    reader: {
                        type: 'json',
                        successProperty: 'success',
                        root: 'details',
                        messageProperty: 'message'
                    }, …
Run Code Online (Sandbox Code Playgroud)

extjs extjs4.1 extjs4.2

0
推荐指数
1
解决办法
2823
查看次数

使用JavaScript或ExtJS舍入格式化的字符串数字

下面,我有一个我想用javascript格式化的数字.但它返回NaN.

var v = "153,452.47";
alert(Math.round(v));
Run Code Online (Sandbox Code Playgroud)

您可以使用以下小提琴:示例

我们如何格式化具有分隔符的数字字符串?

javascript extjs string-formatting extjs4.1 extjs4.2

0
推荐指数
1
解决办法
982
查看次数

以 extjs 形式获取禁用的值

如果我在 extjs 中有一个表单,我可以使用它获取数据

var values = form.getValues();
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只返回启用的字段。我也有禁用的字段。例如,我有一个禁用的 ID 字段,因为显然您不想修改 ID。所以 getValues() 方法在 IMO 中非常无用。

还有 getRecord().data 为我提供了表单中的所有值。

form.getRecord().data
Run Code Online (Sandbox Code Playgroud)

伟大的!但是所有的数据都是数据外的,它不反映表单中所做的修改。

我也查看了getFieldValues(),但同样只给了我启用的字段的值。

有没有什么方法可以让我完全按照屏幕上的形式提供所有数据?还是我必须写一个巨大的黑客来给自己这个功能?

forms extjs extjs4.2

0
推荐指数
1
解决办法
3134
查看次数

有没有方法从pagingtoolbar获取所有启用的按钮?

我的问候 !

我试图通过热键专注于第一个pagingtoolbar的按钮.例如,当它将按CTRL + - >组合时,焦点将在pagingtoolbar的第一个启用按钮上.

这时我可以获得fisrt禁用按钮:

Ext.ComponentQuery.query('pagingtoolbar button{isDisabled()}')[0] 
Run Code Online (Sandbox Code Playgroud)

但我需要这样的代码:

Ext.ComponentQuery.query('pagingtoolbar button{isEnabled()}')[0]
Run Code Online (Sandbox Code Playgroud)

我以为在Ext.button.Button中有这样的方法,但我找不到它.显然,我可以通过另一种方式解决我的问题,例如,我可以通过以下代码获取分页工具栏中的所有启用按钮:

var buttons = Ext.ComponentQuery.query('pagingtoolbar button');
var en_buttons = [];
for(var i=0;i<buttons.length;i++){
  if( !buttons[i].isDisabled() )en_buttons.push(buttons[i]);
}
en_buttons[0].focus(false,100); 
Run Code Online (Sandbox Code Playgroud)

但我相信没有必要编写这样的代码,必须通过一行代码来解决.

关于,A

extjs extjs4.2

0
推荐指数
1
解决办法
76
查看次数

标签 统计

extjs4.2 ×10

extjs ×9

javascript ×3

extjs4.1 ×2

extjs4 ×1

forms ×1

html ×1

string-formatting ×1