所以我希望这些单选按钮像这样工作:当一个被选中(在 window.confirm 之后)并且确认被取消时,返回到之前选择的单选按钮。
编辑:
我有 3 个单选按钮,当您选择其中任何一个时,会出现一个确认框。取消确认后,我希望选中的单选按钮成为新选择之前的单选按钮。
所以我希望这些单选按钮像这样工作:当一个被选中(在 window.confirm 之后)并且确认被取消时,返回到之前选择的单选按钮。
编辑:
我有 3 个单选按钮,当您选择其中任何一个时,会出现一个确认框。取消确认后,我希望选中的单选按钮成为新选择之前的单选按钮。
你可以像这样使用 -
<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>
尝试onclick
返回:
var sure = function(s) {
return confirm('Wana buy:' + s + ' ?');
};
<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
你可以做这样的事情(使用 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');
}
});
}
尝试这个:
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 元素将被存储(返回 true)。每当您取消确认框时,您之前存储的 DOM 元素将被选中,并且检查将设置为 true。
如果您是第一次取消,则没有先前的选择,因此您甚至可以检查:
if(!radioConfirm == '')
{
radioConfirm.checked = true;
}
else
{
e.checked = false;
}
这样,如果您之前没有确认,支票将被取消选中
正如您所看到的带有@OlivierH 答案的jQuery,它更容易使用。所以进入那个不是浪费:)