如何通过`change`事件保持输入的先前状态?

时间:2015-06-22 00:50:09

标签: javascript jquery html5

我有两个单选按钮输入,当单击其中一个时,它将被检查并提醒用户他或她是否要提交输入。根据用户的日志历史记录,可以预先检查其中任何一个。

问题是:当用户点击警告对话框的取消按钮时,我想恢复已检查的无线电输入状态。

如果事件change通过了更改前状态和更改后状态,则很容易实现此功能,但似乎没有。

有没有办法在change事件中记录输入的先前状态?

1 个答案:

答案 0 :(得分:0)

您可以存储对无线电的RadioNodeList的引用,也可以存储当前值。

触发change事件侦听器时,您可以更新存储的值,或通过将旧值指定为value属性来撤消更改。

这将起作用,假设所有无线电都有不同的值。



var form = document.forms[0],
    els = form.elements.myradio,
    val = els.value;
form.addEventListener('change', function(e) {
  if(confirm('Do you want to change?'))
    val = els.value; // Update the value
  else
    els.value = val; // Undo (assign the old value)
});

<form>
  <label><input type="radio" name="myradio" value="1" checked />1</label>
  <label><input type="radio" name="myradio" value="2" />2</label>
  <label><input type="radio" name="myradio" value="3" />3</label>
</form>
&#13;
&#13;
&#13;