所以我希望这些单选按钮的工作方式如下:当选择一个单选按钮时(在window.confirm之后)并取消确认,返回到之前选择的单选按钮。
编辑:
我有一个3个单选按钮,当你选择其中任何一个时,会出现一个确认框。取消确认后,我希望选中的单选按钮是新选择之前的按钮。
答案 0 :(得分:1)
你可以这样做(用jQuery):
$( document ).ready(function() {
//global variable to be able to go back to previous checked checkbox
//checkbox 1 checked by default
var $current_chkbox = $('#my_chkbox1');
$('#my_chkbox1, #my_chkbox2, #my_chkbox3').click(function(){
// if user confirms, just change the global variable
if(window.confirm('my message')){
$current_chkbox = $(this);
}
// if he cancel (ie click no), uncheck current checked checkbox and recheck the previous checked one
else{
$(this).attr('checked', '');
$current_chkbox.attr('checked', 'checked');
}
});
}
答案 1 :(得分:1)
您可以这样使用
<input type="radio" value="1" onclick="return confirmation()" name="collections">
<input type="radio" value="2" onclick="return confirmation()" name="collections">
<input type="radio" value="3" onclick="return confirmation()" name="collections">
<script>
function confirmation(){
if(confirm("Are you sure!"))
{
//do your job
}
else
{
return false;
}
}
</script>
答案 2 :(得分:1)
使用return:
尝试onclick
var sure = function(s) {
return confirm('Wana buy:' + s + ' ?');
};
&#13;
<input type='radio' name='item' onclick='return sure(this.value)' value='Apple' checked/>Apple
<input type='radio' name='item' onclick='return sure(this.value)' value='Grape' />Grape
<input type='radio' name='item' onclick='return sure(this.value)' value='Mango' />Mango
&#13;
答案 3 :(得分:0)
试试这个:
<强>的javascript:强>
var radioVal = "none";
var radioConfirm = '';
function example(e)
{
if(e.checked == true)
{
if(confirm("Is this the value you want to choose?"))
{
radioVal = e.value;
radioConfirm = e;
}
else
{
radioConfirm.checked = true;
}
}
}
<强> HTML 强>
1 <input type="radio" onclick="javascript:example(this)" value='1' name='test'/>
2 <input type="radio" onclick="javascript:example(this)" value='2' name='test'/>
3 <input type="radio" onclick="javascript:example(this)" value='3' name='test'/>
确认框确认后,将存储前一个DOM元素(给定为真实的)。每当您取消确认框时,将选择先前存储的DOM元素并将其设置为true。
如果您是第一次取消,之前没有选择,那么您甚至可以检查:
if(!radioConfirm == '')
{
radioConfirm.checked = true;
}
else
{
e.checked = false;
}
这样,如果您未在
之前确认,则将取消选中该检查<强> jsFiddle 强>
正如你看到jQuery与@OlivierH的回答一样,它更容易使用。所以进入那个并不浪费:)