Javascript中的无线电输入和警报

时间:2011-05-04 21:54:10

标签: javascript radio-button alert tabular

我需要一些帮助。 我有程序根据用户输入在单选框中更改表值 与此页面类似:

clicky

但问题是我希望用户只选择一次无线电输入;如果他们选择另一个 无线电然后表的值搞砸了。 所以我想知道的是,当用户选择两次无线电输入时,如何制作警告框?

与此网站类似clicky尝试点击两次单选按钮并提示弹出窗口。

请有人帮忙吗?

2 个答案:

答案 0 :(得分:1)

如果没有从外部库中获取帮助,很难阻止单选按钮输入节点上的事件。一个简单的解决方案是从附加到每个输入节点的onclick函数中禁用按钮。像这样:http://jsfiddle.net/c73Mh/。如果由于某种原因他们仍然需要能够选择单选按钮,则可以通过选择最初从同一功能中选择的按钮来取消选择。希望这有帮助!

答案 1 :(得分:0)

为了简单起见,我假设每个单选按钮的id是name和value属性的组合。除了我在下面给出的内容之外,您还需要添加一个设置selectedValues = {};的某种reset()函数并取消选择所有单选按钮。

<input type="radio" name="group1" value="A" id="group1A" onclick="radioClicked(this);" />First option
<input type="radio" name="group1" value="B" id="group1B" onclick="radioClicked(this);" />Second option

<input type="radio" name="group2" value="A" id="group2A" onclick="radioClicked(this);" />First option
<input type="radio" name="group2" value="B" id="group2B" onclick="radioClicked(this);" />Second option

var selectedValues = {};

function radioClicked(rb) {
  if (selectedValues[rb.name] === undefined) {
    selectedValues[rb.name] = rb.value;
    doTableProcessing();
  }
  else {
    alert("You can't change the selected values");
    document.getElementById(rb.name + selectedValues[rb.name]).checked = true;
  }
}