使用样式按钮时,jQuery返回错误的选中单选按钮值

时间:2014-01-09 12:00:52

标签: javascript jquery jquery-plugins radio-button

我正在使用jQuery插件ScrewDefaultButtons来设置我的单选按钮的样式,但它似乎附带了一个副作用,它在通过jQuery获取它时没有返回正确的值。我在点击它时运行一个函数,我试图获取用户选择的单选按钮的值,但它似乎返回先前选择的单选按钮的值,而不是刚刚选中的单选按钮的值。

如果我删除了禁用样式的类pretty_rb,那么它可以正常工作。

我试图通过以下方式获得价值:

jQuery('input[name=tax_account_type]:checked').val();

我的HTML:

<input type="radio" name="tax_account_type" id="individual" class="pretty_rb" value="0" onclick="updateRegForm();" checked required>
<input type="radio" name="tax_account_type" id="business" class="pretty_rb" value="1" onclick="updateRegForm();" required>

修改:小提琴:http://jsfiddle.net/94UtB/2/

1 个答案:

答案 0 :(得分:3)

问题在于ScrewDefaultButtonsinput元素包含在div中,然后隐藏input元素。
此div有一个click事件,用于检查正确的隐藏input元素 然而。由于您有onClick个事件,因此您的事件会在更改之前运行 这就是为什么你得到old值。

要解决此问题,请在<{1}}调用后添加以下代码

screwDefaultButtons

$('.styledRadio').on('click', updateRegForm);

请记住从HTML中删除onlick属性。