1

所以我希望这些单选按钮像这样工作:当一个被选中(在 window.confirm 之后)并且确认被取消时,返回到之前选择的单选按钮。

编辑:

我有 3 个单选按钮,当您选择其中任何一个时,会出现一个确认框。取消确认后,我希望选中的单选按钮成为新选择之前的单选按钮。

4

4 回答 4

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>

于 2015-04-02T05:07:10.603 回答
1

尝试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

于 2015-04-02T05:15:05.803 回答
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');
        }
    });
}
于 2013-11-13T15:02:37.780 回答
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 元素将被存储(返回 true)。每当您取消确认框时,您之前存储的 DOM 元素将被选中,并且检查将设置为 true。

如果您是第一次取消,则没有先前的选择,因此您甚至可以检查:

if(!radioConfirm == '')
{
  radioConfirm.checked = true; 
}
else
{
  e.checked = false; 
}

这样,如果您之前没有确认,支票将被取消选中

jsFiddle


正如您所看到的带有@OlivierH 答案的jQuery,它更容易使用。所以进入那个不是浪费:)

于 2013-11-13T15:02:44.147 回答