【问题标题】:Dart How to click or select a radio button programatically?Dart 如何以编程方式单击或选择单选按钮?
【发布时间】:2014-07-31 20:52:11
【问题描述】:

在两种情况下,我需要能够通过软件单击或更改选定的单选按钮,但我不知道该怎么做。

一个例子是用户在错误的时间点击了按钮。我明白了,但是现在单击的按钮显示为已选中,因此我需要将其更改回来。

另一种情况是当用户将显示与在其他地方维护的主数据库同步时(在同时运行的单独 Java 应用程序中)并且存在需要更正的差异。

在我的 HTML 文档中

      <div id='radio-btns' class='radio-btns'>
        <input id='B12' type='radio' name='radio-btn' checked>
          <label id='lblB12' class='radiobutton-label' for='B12'>IR&nbsp;</label>
        <input id='BWB' type='radio' name='radio-btn' >
          <label id='lblBBW' class='radiobutton-label' for='BWB'>Wide</label>
        <input id='B10' type='radio' name='radio-btn' >
          <label id='lblB10' class='radiobutton-label' for='B10'>B10</label>
        <input id='B08' type='radio' name='radio-btn' >
          <label id='lblB8' class='radiobutton-label' for='B08'>B8&nbsp;</label>
      </div>

在客户端 Dart 代码中:

querySelectorAll('input[type="radio"]').onClick.listen(bandBtnClicked);

// later on in onClick()
ButtonElement bandBtn = querySelector('#$correctBand'); 

bandBtn 不为空,但我不知道如何使用它来模拟点击。我想我宁愿取消选择错误单击的单选按钮,然后选择应该单击的单选按钮。我试过的都没有用。

[编辑]这行得通!

ButtonInputElement bandBtn = querySelector('#$correctBand');
bandBtn.click();

【问题讨论】:

  • 你想用&lt;button id='$correctBand'&gt;做什么?您的问题从如何以编程方式选择RadioButtonInputElement 开始,您的代码显示您想用ButtonElement 做某事。您截断的 HTML 不包含 &lt;button&gt; 元素,也不包含 ID 为 $correctBand 的其他元素。这有点令人困惑。

标签: html radio-button dart


【解决方案1】:

您可以更改选中的单选按钮,如下所示。如果您更新您的问题以使其更清楚,我可能会提供更好的解决方案(如果这不是您想要完成的)。

html:

<div id='radio-btns' class='radio-btns'>
  <input id='B12' type='radio' name='radio-btn' checked>
    <label id='lblB12' class='radiobutton-label' for='B12'>IR&nbsp;</label>
  <input id='BWB' type='radio' name='radio-btn' >
    <label id='lblBBW' class='radiobutton-label' for='BWB'>Wide</label>
  <input id='B10' type='radio' name='radio-btn' >
    <label id='lblB10' class='radiobutton-label' for='B10'>B10</label>
  <input id='B08' type='radio' name='radio-btn' >
    <label id='lblB8' class='radiobutton-label' for='B08'>B8&nbsp;</label>
</div>

<button>click me</button>

飞镖:

main () {
  dom.querySelectorAll('input[type="radio"]').onClick.listen(bandBtnClicked);
  dom.querySelectorAll('button').onClick.listen(bandBtnClicked);
}

void bandBtnClicked(event) {
  (dom.querySelector('#B08') as dom.RadioButtonInputElement).checked = true;
}

【讨论】:

  • 我的单选按钮是带有小 png 图像的自定义按钮,用于指示已选中或未选中。设置checked = true 是否与预期的单选按钮行为一致?正如您在上面看到的,我找到了一个解决方案,但可能会探索您的解决方案,因为它显然可以满足我的需求。
猜你喜欢
  • 1970-01-01
  • 2011-12-09
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2021-12-19
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多