Dart如何以编程方式单击或选择单选按钮?

时间:2014-07-31 20:52:12

标签: html5 radio-button dart

在两种情况下我需要能够通过软件点击或更改所选的单选按钮,但我无法弄清楚如何做到这一点。

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

另一种情况是用户将显示与其他地方维护的主数据库同步(在同时运行的单独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不是null但我不知道如何处理它来模拟点击。我想我宁愿取消选择错误点击的单选按钮,然后选择应单击单选按钮。我没有尝试过任何作品。

[edit]这有效!

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

1 个答案:

答案 0 :(得分: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;
}