单击单选按钮时,如何使用jquery从表单中获取值?

单击单选按钮时,如何使用jquery从表单中获取值?,jquery,Jquery,我尝试在单击单选按钮时提醒用户名,但是,当单击单选按钮时,第一个用户名始终会提醒,而不是关联的用户名 结果应如下所示: 杰克445 -如果单击用户单选按钮,则发出警报“Jack445” Doe445 -如果单击用户单选按钮,则发出警报“Doe445” 约翰445 -如果单击用户单选按钮,则发出警报“John445” - 然而,我得到的结果如下: 杰克445 -如果单击用户单选按钮,则发出警报“Jack445” Doe445 -如果单击用户单选按钮,则发出警报“Jack445” 约翰445 -如果

我尝试在单击单选按钮时提醒用户名,但是,当单击单选按钮时,第一个用户名始终会提醒,而不是关联的用户名

结果应如下所示:

杰克445 -如果单击用户单选按钮,则发出警报“Jack445”

Doe445 -如果单击用户单选按钮,则发出警报“Doe445”

约翰445 -如果单击用户单选按钮,则发出警报“John445”

-

然而,我得到的结果如下:

杰克445 -如果单击用户单选按钮,则发出警报“Jack445”

Doe445 -如果单击用户单选按钮,则发出警报“Jack445”

约翰445 -如果单击用户单选按钮,则发出警报“Jack445”

$('.star\u form>.star\u rating')。每个(函数(){
$(此)。单击(函数(){
警报($(this.parent().children().closest('.rated_username').val());
});
});
.stars{
背景:#ccc;
填充:3倍;
边界半径:3px;
边框:1px实心#ccc;
边缘底部:20px;
}
.stars.username{
边缘底部:10px;
字体大小:24px;
字体系列:Tahoma;
}

杰克445
5.
4.
3.
2.
1.
Doe445
5.
4.
3.
2.
1.
约翰445
5.
4.
3.
2.
1.
Fix
  • ID必须是唯一的

    修复-所有无线电ID加上一些div现在都有唯一的ID

  • 一组单选按钮应共享相同的
    [name]
    属性,以便它们具有互斥关系。不要在无线组之间共享相同的
    [name]
    。为每个无线组分配一个唯一的
    [name]
    属性以共享

    Fix-为每个无线电组提供一个唯一的
    [名称]

  • 使用一个
    将收集具有
    [name]
    属性的所有表单控件的值。共享
    [name]
    的单选组将仅具有所选单选按钮的值

    修复-删除所有的
    并将一个
    包裹在所有东西周围

    奖金-提交后,
    将表单数据发送到实时测试服务器。响应将显示在下面的

  • jQuery逐行:

    • 表格#星号
      更改
      事件委托给每个
      :收音机

      $('#starRating').on('change', ':radio', function(e) {
      
    • 获取更改的
      :收音机“
      的值

      var rating = $(this).val();
      
    • 记录值(顺便说一句,使用
      控制台
      不要使用
      警报()

    • 查找已更改的
      :radio
      同级元素和类
      .rated_username
      ,并将其值存储在变量中

      var user = $(this).siblings('.rated_username').val();
      
    • 我重复不要使用alert()使用
      console.log
      console.dir

      console.log(user);
       });
      
  • 注意:下面的演示是一些参考资料

    演示
    $(“#starting”)。打开('change',':radio',函数(e){
    var评级=$(this.val();
    控制台日志(额定值);
    var user=$(this.sibbines('.rated_username').val();
    console.log(用户);
    });
    
    .stars{
    背景:#ccc;
    填充:3倍;
    边界半径:3px;
    边框:1px实心#ccc;
    边缘底部:20px;
    }
    .stars.username{
    边缘底部:10px;
    字体大小:24px;
    字体系列:Tahoma;
    }
    [类型=提交]{
    浮动:对;
    字体:继承
    }
    /*仅供演示*/
    .作为控制台包装{
    最大高度:240px;
    最大宽度:180像素;
    转换:转换(250px,-100px);
    颜色:番茄;
    }
    
    杰克445
    5.
    4.
    3.
    2.
    1.
    Doe445
    5.
    4.
    3.
    2.
    1.
    约翰445
    5.
    4.
    3.
    2.
    1.
    
    你就快到了
    div
    没有值。它们包含文本

    $('.star\u form>.star\u rating')。每个(函数(){
    $(此)。单击(函数(){
    警报($(this.parent().parent().closest('div').find('.username').text());
    });
    });
    
    .stars{
    背景:#ccc;
    填充:3倍;
    边界半径:3px;
    边框:1px实心#ccc;
    边缘底部:20px;
    }
    .stars.username{
    边缘底部:10px;
    字体大小:24px;
    字体系列:Tahoma;
    }
    
    杰克445
    5.
    4.
    3.
    2.
    1.
    Doe445
    5.
    4.
    3.
    2.
    1.
    约翰445
    5.
    4.
    3.
    2.
    1.
    
    请仔细阅读,并提供一个重现您的问题的解决方案。它正在工作,出了什么问题?您正在使用IE吗?在Chrome中它是有效的。@zer00ne我在使用Chrome,我一直得到第一个用户名,你不能有重复的ID。更改id模式例如。
    id=“starA-1”
    下一个组可以是
    id=“starB-1”
    等。发生的情况是浏览器将在找到第一个id时停止,并且不会继续,因为它认为只有一个id,因为id是唯一的。这种行为是有保证的,因为它是由开发人员来确保一个id永远不会被复制。我知道放置所有东西都是一个表单
    console.log(user);
     });