我有两个单选按钮输入,当单击其中一个时,它将被检查并提醒用户他或她是否要提交输入。根据用户的日志历史记录,可以预先检查其中任何一个。
问题是:当用户点击警告对话框的取消按钮时,我想恢复已检查的无线电输入状态。
如果事件change
通过了更改前状态和更改后状态,则很容易实现此功能,但似乎没有。
有没有办法在change
事件中记录输入的先前状态?
答案 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;