使用JQuery / JavaScript从所选单选按钮返回范围文本

时间:2015-05-21 20:24:20

标签: jquery html radio-button radiobuttonlist

我有一个单选按钮列表,其中只能检查一个。我想从所选单选按钮中检索值。我似乎没有在返回的警报中获得任何文本。

请注意,此HTML是自动生成的,因此我无法对其进行编辑。因此无法增加价值。

<form class="leaflet-control-layers-list">
<div class="leaflet-control-layers-base">
    <label>
        <input class="leaflet-control-layers-selector" type="radio" checked="checked" name="leaflet-base-layers"></input>
            <span>
                Gemeenten
            </span>
   </label>
   <label>
        <input class="leaflet-control-layers-selector" type="radio" name="leaflet-base-layers"></input>
            <span>
                Wijken
            </span>
   </label>
   <label>
       <input class="leaflet-control-layers-selector" type="radio" name="leaflet-base-layers"></input>
           <span>
               Buurten
           </span>
   </label>
</div>
</form>

这是我使用的jQuery脚本:

radioButtonText = $('input[name=leaflet-base-layers].leaflet-control-layers-selector:checked').html();
alert(radioButtonText);

有人知道如何根据选择的单选按钮返回“Gemeenten”,“Buurten”或“Wijken”文本吗?

3 个答案:

答案 0 :(得分:1)

在输入广播

中设置值属性
<input value="Gemeenten" class="leaflet-control-layers-selector" type="radio" checked="checked" name="leaflet-base-layers">

使用.val()方法

获取无线电输入值
radioButtonText = $('input[name=leaflet-base-layers].leaflet-control-layers-selector:checked').val();
alert(radioButtonText);

如果你需要span html内容:

radioButtonText = $('input[name=leaflet-base-layers].leaflet-control-layers-selector:checked');

var label_value = radioButtonText.closest('label').find('span').html();
alert(label_value);

答案 1 :(得分:1)

获取点击的单选按钮的下一个html。

$(document).ready(function(){
 $("input[type=radio]").click(function(e) {
        var inputs = $('input[type=radio]');
            alert($(this).next().html());

    });

});

工作小提琴: http://jsfiddle.net/5u94gzb8/

答案 2 :(得分:1)

*)您的选择器缺少项目名称旁边的引号。

*)你可能不需要班级&#34; .leaflet-control-layers-selector&#34;如果您使用按钮名称。

*)您不想从输入中获取.html(),您希望它来自以下范围,您可以使用.next()。

应该是:

radioButtonText = $('input[name="leaflet-base-layers"]:checked').next().html();
alert(radioButtonText);