获取在用户选择新按钮之前选择的单选按钮的值

Dav*_*ard 15 jquery radio-button

如果我有3个单选按钮,是否有一种方法可以通过jQuery查找在用户单击新单元之前选择的值的值?

<div id="radio-group">
    <input type="radio" id="radio-1" name="radios" value="1" checked="true" />
    <input type="radio" id="radio-2" name="radios" value="2" />
    <input type="radio" id="radio-3" name="radios" value="3" />
</div>
Run Code Online (Sandbox Code Playgroud)

在示例中,如果用户点击radio-3,我需要一种方法来获取1,以便我可以执行一些格式化.谢谢.

Adi*_*dil 25

你可以使用mouseupchange事件.在鼠标radio按下时,您将获得在选择其他辐射按钮之前选择的按钮的值,并且更改事件将给出新选择的radio按钮.

现场演示

$('input[name=radios]').mouseup(function(){
    alert("Before change "+$('input[name=radios]:checked').val());
}).change(function(){
    alert("After change "+$('input[name=radios]:checked').val());
})?;
Run Code Online (Sandbox Code Playgroud)


Vil*_*lle 12

我会将按下的值保存到数组中并使用它编辑隐藏值.

http://jsfiddle.net/BQDdJ/6/

HTML

<div id="radio-group">
    <input type="radio" id="radio-1" name="radios" value="1" checked="true" />
    <input type="radio" id="radio-2" name="radios" value="2" />
    <input type="radio" id="radio-3" name="radios" value="3" />
    <input type="hidden" id="radio-previous" name="radio-previous" />
</div>?
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$(document).ready(function(){
    var clicks = new Array();
    clicks[0] = 1 //this should be the default value, if there is one

    $('input[name$="radios"]').change(function(){
       clicks.push($(this).val()) 
       $('#radio-previous').val(clicks[clicks.length-2])
    })
})
Run Code Online (Sandbox Code Playgroud)

  • 而不是`clicks [0] = 1`你可以做`click [0] = $('input [name ="radios"] [checked ="true"]').val();`这将返回默认值没有在JavaScript中对其进行硬编码的价值. (3认同)