使用jQuery获取动态单选按钮的价值

时间:2013-07-26 11:33:56

标签: jquery radio-button

我非常害怕一个总是jquery noob!我确信这是一件非常简单的事情,但我似乎无法解决这个问题。

我试图获取动态的,选定的单选按钮的值。

HTML ...

<div id="holder" class="">
<table id="qual-holder" class="table table-striped qual-table">
    <thead>
        <tr>
            <th>Sector</th>
            <th>Qualification Title</th>
            <th>Cost</th>
            <th>Confirm</th>
        </tr>
    </thead>
    <tr class="sector_qual">
        <td>OM207</td>
        <td>Diploma in Children and Young People's Workforce Level 3</td>
        <td>0</td>
        <td>
            <input name="qualification" id="28" type="radio" value="28" class="">
        </td>
    </tr>
    <tr class="sector_qual">
        <td>OM207</td>
        <td>Diploma in Children and Young People's Workforce</td>
        <td>0</td>
        <td>
            <input name="qualification" id="29" type="radio" value="29" class="">
        </td>
    </tr>
    <tbody id="sector_quals"></tbody>
</table>
<div class="control-group spacing-top">
    <label for="loan_value" class="control-label required">Amount to Borrow</label>
    <div class="controls">
        <div class="input-prepend"> <span class="add-on"><i class="icon-gbp"></i></span>

            <input class="input-small" placeholder="" name="loan_value" type="text" value="" id="loan_value">
        </div>
    </div>
</div>

我的(垃圾)jQuery ......

function updateAmount() {
    var selectedValue = "";
    var selected = $("input:radio[name='qualification']:checked");
    if (selected.length > 0) {
        selectedValue = selected.val();
        alert('The radio button has been selected and the value is.' + selectedValue);
    }

}

updateAmount();

有人可以告诉我我做错了吗?

由于

3 个答案:

答案 0 :(得分:5)

您过早地调用updateAmount,绑定click事件并将回调设置为updateAmount,或将change事件视为烘焙提及,因为事件将仅在实际选择发生更改时触发,而不仅仅是点击了。

jQuery(document).on("click",'input:radio[name=qualification]',updateAmount);

.on函数使得当前的单选按钮和任何新的单选按钮的click事件被触发

jQuery .on reference

jQuery click reference

jQuery change reference

答案 1 :(得分:2)

你的代码实际上很好。问题在于您呼叫updateAmount()的位置。如果您希望在用户选择选项时调用此选项,请在change()事件中调用它。像这样:

$("input:radio[name='qualification']").change(function () {
    updateAmount();
});

Here is a working example

答案 2 :(得分:0)

试试这个:

为所有radio buttons提供课程。例如无线电。

$(".radio").change(function(){
    var selected_value = $(this).val();
    alert('The radio button has been selected and the value is ' + selected_value);

});