无法从单选按钮获取数据属性值,但可以从选择选项中获取

时间:2014-01-11 05:04:42

标签: javascript jquery html

我编写了一些代码,允许我根据保存到mysql db的内容来确定要检查哪个选项。为了能够工作,我需要将数据属性的值打印到隐藏的输入,以便我可以存储所选的选项。

我的代码在选择选项时工作正常,但似乎没有使用单选按钮。我在jsfiddle或示例中汇总了两个演示,可以在这里找到:

http://jsfiddle.net/5ax5Q/

这是代码,首先是html:

<input data-checked="yes" type="radio" name="product-attr-wifi" value="100" checked />Yes
<input data-checked="no" type="radio" name="product-attr-wifi" value="200" />No
<br>
<input type="text" name="product-attr-wifi-checked" />

这是jquery:

var optionChecked = function (checkedInput, checkedOuput) {
    $(document).ready(function () {
        $(checkedInput).bind("change", function () {
            var checkedValue = $(this).find(":checked").attr("data-checked");
            $(checkedOuput).val(checkedValue);
        });
        $(checkedInput).trigger("change");
    });
};

optionChecked('input[name="product-attr-wifi"]', 'input[name="product-attr-wifi-checked"]');

2 个答案:

答案 0 :(得分:1)

对于单选按钮,您不必使用find(),因为this指的是具有数据属性的无线电元素

var optionChecked = function (checkedInput, checkedOuput) {
    $(document).ready(function () {
        $(checkedInput).bind("change", function () {
            var checkedValue = $(this).attr("data-checked");
            $(checkedOuput).val(checkedValue);
        });
        $(checkedInput).filter(':checked').trigger("change");
    });
};

演示:Fiddle

答案 1 :(得分:0)

试试这个

var optionChecked = function (checkedInput, checkedOuput) {
    $(document).ready(function () {
        $(checkedInput).on("change", function () {
            var checkedValue = $(this).filter(':checked').attr("data-checked");
            $(checkedOuput).val(checkedValue);
        });
        $(checkedInput).filter(':checked').trigger("change");
    });
};

DEMO