【问题标题】:Uncheck radiofield取消选中无线电场
【发布时间】:2019-03-29 23:45:18
【问题描述】:

我需要点击一个单选框并选中它,再次点击同一个单选框并取消选中它。

我的代码不起作用,因为getChecked() 总是正确的! 这是我的功能,在点击事件时触发。 我的 extjs 版本是 6.2.1.167

listeners: {
    click: {
        element: 'element',
        fn: function (event, target) {
            var radioField = this.component;
            if (radioField.getChecked()) {
                radioField.setChecked(false);
            }
            else {
                radioField.setChecked(true);
            }
        }
    }
},

【问题讨论】:

  • 为什么使用收音机而不是复选框?
  • @LenapCapo 你是对的,我知道......但这不取决于我
  • @CristinaMoretti,现代无线电场上没有点击事件。这是一个检查事件,并且总是会返回 true。即使尝试使用更改事件也不起作用,因为无线电场上的更改仅在检查另一个无线电场时才会触发。您需要创建自定义覆盖以 a) 引入自定义事件或 b) 覆盖现有事件。这是有关无线电场的文档。 docs.sencha.com/extjs/6.2.1/modern/Ext.field.Radio.html

标签: javascript checkbox extjs radio-button extjs6-modern


【解决方案1】:

您的示例适用于我的情况。

Sencha Fiddle

但正如@LenapCapo 所说,您正试图将单选框用于其他目的。如果需要圆形复选框,最好重新定义复选框样式。

【讨论】:

  • 请问您可以尝试使用 6.2.1.167 现代版本吗?它不适用于此版本...
  • 是的,在 6.2.1 上这不起作用。我建议你使用以下解决方案{ xtype: 'checkboxfield', name: 'color', cls: 'x-radiofield', value: 'red', label: 'Red', checked: true }fiddle.sencha.com/#view/editor&fiddle/2r49
  • 谢谢你是最好的。你能帮我最后一次吗?我应该怎么做才能启用单选? fiddle.sencha.com/#view/editor&fiddle/2r4t
  • 如果您指的是初始状态,请从所需字段中删除属性checked。如果希望切换时只能选择一个字段,则需要radiofielddocs.sencha.com/extjs/6.2.1/modern/Ext.field.Radio.html
  • 那么是不是不能只选择一个字段而可以取消选择?
【解决方案2】:

您确定您正在检查收音机的正确功能吗?我已经看到了

radioField.checked

或者您是否使用自己的方法来检查收音机?

【讨论】:

  • 你的意思是 radiofield.checked 而不是 getChecked() ?
猜你喜欢
  • 2014-04-23
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 2022-07-01
  • 1970-01-01
  • 2021-11-03
相关资源
最近更新 更多