我正在尝试禁用单选按钮上的检查事件。这是扫描仪。
如果选中了button1
,并且用户点击button2
,用户会看到JS确认对话框,如果用户点击确定 button2
,则会在广播组中将进行检查,如果用户点击取消,则会保留先前选中的按钮Button1
。
这是我尝试过的。
<form id="myForm">
<input type="radio" checked="true" name="radioName" onclick="setData(this)" value="1" /> 1 <br />
<input type="radio" name="radioName" onclick="setData(this)" value="2" /> 2 <br />
<input type="radio" name="radioName" onclick="setData(this)" value="3" /> 3 <br />
</form>
function setData(ctrl)
{
var r = confirm("The selected option contains data, unchecking this option will delete this data. Do you want to continue ?");
if (r == true) {
// clicked Radio button gets checked
} else {
// perviously checked button remains checked
return false;
}
}
但我无法达到预期的效果。 这是小提琴:http://jsfiddle.net/RhnvU/5547/
答案 0 :(得分:2)
你要做的是正确的,除了你的onclick处理程序,你应该用return
调用函数,因为你将返回用户按下取消的错误。
尝试这样的事情 -
onclick="return setData(this)"
这是更新的小提琴 - http://jsfiddle.net/RhnvU/5550/
答案 1 :(得分:0)
试试这个
<div class="inner cover" style="opacity:0;">1 Vertical Top</div>
<div class="inner cover" style="opacity:0.333;">2</div>
<div class="inner cover" style="opacity:1;">3 Vertical Middle</div>
<div class="inner cover" style="opacity:0.333;">4</div>
<div class="inner cover" style="opacity:0;">5 Vertical Bottom</div>
<div class="inner cover" style="opacity:0;">6 Below Vertical Bottom</div>
<div class="inner cover" style="opacity:0;">7 Below Vertical Bottom</div>
<div class="inner cover" style="opacity:0;">8 Below Vertical Bottom</div>
<div class="inner cover" style="opacity:0;">9 Below Vertical Bottom</div>
答案 2 :(得分:0)
我建议使用.click()
事件而不是onmousedown
。这是因为它会在更改单选按钮的值之前做出决定,而不是在click
已经设置了值之后做出决定。
因此HTML代码变为:
<input type="radio" checked="true" name="radioName" onmousedown="setData(this)" value="1" />
并在Js文件中,只需根据选择值使用.checked
属性:
if (r == true) {
ctrl.checked = true;
// clicked Radio button gets checked
} else {
return false;
}
这是工作fiddle
详细说明: 它将做的是以下几点:
答案 3 :(得分:0)
'e.keycode == 32' is used to trigger the same event in case of space key press. Hope this helps.
$('.button1').on('click keyup' , function(e){
if(e.keyCode == 32 || e.type=="click"){
//show your Dialog or pop-up
$('.popup').show();
$('#proceed').click(function(){
selectradioButton1();
});
$('#cancel').click(function(){
$('.popup').hide();
});
}
});
$('.button2').on('click keyup' , function(e){
if(e.keyCode == 32 || e.type=="click"){
selectradioButton2();
}
});
function selectradioButton1() {
$('#radiobtn1').attr('checked', true);
$('#radiobtn2').attr('checked', false);
}
function selectradioButton1() {
$('#radiobtn2').attr('checked', true);
$('#radiobtn1').attr('checked', false);
}