按钮状态绑定到表单状态,但禁用表单是保持按钮处于活动状态

时间:2014-04-15 18:29:38

标签: extjs extjs4

我有一个表单(带有文件字段),一旦表单被验证(即:已经为文件字段选择了一个文件),[Upload]按钮应该是活动的。

PHP函数返回一个字符串['true','false']并在整个地方工作。这不是bug的来源。保证。

问题在于,当将表单设置为disabled: true时,查找文件字段(formBind: true)的按钮正在解释禁用的字段。文件作为传递表单要求。

一个可能的解决方案是只禁用“浏览”按钮,该按钮是该字段的一部分。文件,但我不知道该怎么做。

导致问题的全部功能如下:

update_inventory_form_panel = new Ext.form.Panel({
  title: 'Update Inventory',
  bodyStyle: 'padding: 5px;',
  region: 'north',
  items: [
    new Ext.form.field.Display({
      value: 'Choose a CSV to upload.'
    }),
    new Ext.form.field.File({
      fieldLabel: 'Inventory File',
      name: 'update_csv',
      inputWidth: 400,
      allowBlank: false,
      disabled: <?= php_function_that_returns_'true'_or_'false'();?>
    })
  ],
  buttons: [
    new Ext.Button({
      text: 'Upload',
      formBind: true,
      handler: update_handler
    })
  ]
});

1 个答案:

答案 0 :(得分:1)

  

问题在于将表单设置为disabled:true

从上面的代码中,看起来你正在禁用'Ext.form.field.File'而不是'Ext.form.Panel'。

上传按钮处于活动状态,因为当禁用“Ext.form.field.File”时,表单不会考虑文件字段进行验证。 (如果未禁用field.File并将其保留为空,则将禁用上载按钮)