尝试使用jQuery将所选单选按钮的值传递给另一个函数

尝试使用jQuery将所选单选按钮的值传递给另一个函数,jquery,forms,radio-button,Jquery,Forms,Radio Button,我有一个带有单选按钮组的屏幕。客户端不希望它们看起来像单选按钮,因此我对标签进行了样式化,并隐藏了实际的单选按钮。我让jquery“突出显示”所选单选按钮,然后调用一个函数来处理用户的选择: $(function() { $('input:radio').change(function(){ $(this).parent().toggleClass('active', this.checked).siblings().removeClass('active'); pro

我有一个带有单选按钮组的屏幕。客户端不希望它们看起来像单选按钮,因此我对标签进行了样式化,并隐藏了实际的单选按钮。我让jquery“突出显示”所选单选按钮,然后调用一个函数来处理用户的选择:

$(function() {
   $('input:radio').change(function(){
     $(this).parent().toggleClass('active', this.checked).siblings().removeClass('active');
     processStep1(this);
   });  
});
此部分工作正常,它调用以下函数:

function processStep1(v) {
  if ($("input:radio[name='challenge-type']").is(":checked")) {
    $('#step1 .next').removeClass('disabled');
    // which of the challenge-type radios was selected?
    }
 }

在“启用”下一步按钮之前,检查以确保已检查收音机。但是在这一点上,我需要知道选择哪个收音机的值,我不知道如何在不再次检查dom的情况下获得它;有没有办法在第一个函数的更改事件中获取它并将其传递给第二个函数?

有一个用于输入的数据属性(在本例中为单选按钮),当调用函数时,只需将数据属性的值传递给函数。您可以拥有数据属性
每个单选按钮都是独一无二的,我认为这应该可以解决您的问题。

我创建了一个提琴来显示一个类似代码的exmaple。此代码获取复选框的值并显示在警报中

看看这个:


似乎您可以使用Function processStep1的参数v来检查这一点。

$(function() {
   $('input:radio').change(function(){
       $(this).parent().toggleClass('active', this.checked);
       $(this).parent().siblings().removeClass('active');

       processStep1(this);
   });
});

function processStep1(v) {
    if(v.checked)
    {
        alert('Value: ' + v.value);
    }
}