首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取在用户选择新单选按钮之前选择的单选按钮的值

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

Stack Overflow用户
提问于 2012-06-15 22:31:16
回答 6查看 30.1K关注 0票数 17

如果我有3个单选按钮,有没有办法在用户单击新按钮之前通过jQuery找出选中的单选按钮的值?

代码语言:javascript
复制
<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>

在示例avove中,如果用户单击radio-3,我需要一种方法来获取1,这样我就可以对其进行一些格式化。谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-06-15 22:42:47

我会将按下的值保存到一个数组中,并用它来编辑隐藏值。

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

HTML

代码语言:javascript
复制
<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>​

JavaScript

代码语言: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])
    })
})

票数 15
EN

Stack Overflow用户

发布于 2012-06-15 22:33:19

您可以使用mouseupchange事件。在鼠标打开时,你将获得在选择其他单选按钮之前选择的radio按钮的值,而change事件将给出新的radio按钮选择。

代码语言:javascript
复制
$('input[name=radios]').mouseup(function(){
    alert("Before change "+$('input[name=radios]:checked').val());
}).change(function(){
    alert("After change "+$('input[name=radios]:checked').val());
})​;
票数 27
EN

Stack Overflow用户

发布于 2018-03-06 01:25:54

“已经有一段时间了”可能是一种委婉语,但如果有人偶然发现了这个问题:

Adil给我指出了正确的方向,但是mouseup只适用于鼠标触发的事件(duh),所以我尝试了使用focus,因为它也发生在change事件之前,所以它适用于鼠标和键盘输入(比如当您使用标签箭头键更改无线电状态时)。因此,要在用户交互之前访问以前选择/选中的项目,请使用focus;要获取当前项目,请使用旧的change

代码语言:javascript
复制
//html
    <input type="radio" id="radio-1" name="radios" value="1" />
    <input type="radio" id="radio-2" name="radios" value="2" />

//js
    //if currently checked item is radio-1
    $('[name=radios]').on('focus', function() {
        console.log($('[name="radios"]:checked').val()); //outputs 1
    });
    $('[name=radios]').change(function() {
        console.log($('[name="radios"]:checked').val()); //outputs 2
    });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11052702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档