javascript - 为什么我的单选按钮实现无法正常工作

标签 javascript html

一旦用户选择任何单选按钮,我就会尝试执行单击警报。但是,如果用户按下名称为 ANVIL 的单选按钮之外的任何按钮,它会发送未定义的警报,而如果我按下名称为 Anvil 的单选按钮,它会发出警报,说明 anvil。

function processFlow() {

  var tempType;
  for (var i = 0; i < document.flow_form.flow.length; i++) {
    if (document.flow_form.flow[i].checked) {
      tempType = document.flow_form.flow[i].value;
    }
    alert(tempType);
    //document.getElementById("result").innerHTML = document.flow_form.flow[i].value;
    break;
  }

}
	<h1>Position Trigger Messages</h1>
<div class="container">
  <div class="sheet_column">
    <form name="flow_form">
      <h2>Flow</h2>
      <label class="flow_row">
        <input type="radio" name="flow" value="anvil" onclick="processFlow()" checked>ANVIL</label>
      <br>

      <label class="flow_row">
        <input type="radio" name="flow" value="fx" onclick="processFlow()">FX</label>
      <br>

      <label class="flow_row">
        <input type="radio" name="flow" value="debt" onclick="processFlow()">Debt</label>
      <br>

      <label class="flow_row">
        <input type="radio" name="flow" value="prms_repos" onclick="processFlow()">PRMS Repos</label>
      <br>

      <label class="flow_row">
        <input type="radio" name="flow" value="prms_fx" onclick="processFlow()">PRMS FX</label>
      <br>

      <label class="flow_row">
        <input type="radio" name="flow" value="equity_racs" onclick="processFlow()">Equity options from RACS</label>
      <br>

      <label class="flow_row">
        <input type="radio" name="flow" value="convertible_bonds">Convertible bonds</label>
      <br>

      <label class="flow_row">
        <input type="radio" name="flow" value="firm_derivatives" onclick="processFlow()">Firm derivatives</label>
      <br>

      <label class="flow_row">
        <input type="radio" name="flow" value="stocks" onclick="processFlow()">Stocks</label>
    </form>
  </div>

最佳答案

你的alert()和break应该在if里面。否则,当他们选择第一项之后的任何内容时,它将警告(tempType),这是未定义的,然后中断,这意味着当循环退出时它将永远找不到匹配项。

function processFlow() {

  var tempType;
  for (var i = 0; i < document.flow_form.flow.length; i++) {
    if (document.flow_form.flow[i].checked) {
      tempType = document.flow_form.flow[i].value;
      alert(tempType);
      break;
    }

  }

}

关于javascript - 为什么我的单选按钮实现无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31522539/

相关文章:

javascript - Angular HTTP 拦截器没有命中错误函数

javascript - 无法通过字符串形式的名称访问对象

html - Shiny - 传单 map 内的控制小部件

javascript - 用 Leaflet 创建一个圆(使用正半径)

javascript - 如何从字符串中获取奇数和偶数位置的字符?

javascript - 滚动一定距离后弹出文本不起作用

html - 行高没有正确继承

iphone - 在用 phonegap 包装的 html5 iphone 应用程序中使用 css sprite 是否会加快性能?

php - 更正 HTML 状态代码以防止未经授权的访问和禁止的访问。 (使用 Ajax )

javascript - C# WEB API CORS 不起作用