我正在使用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/
答案 0 :(得分:3)
问题在于ScrewDefaultButtons
将input
元素包含在div
中,然后隐藏input
元素。
此div有一个click事件,用于检查正确的隐藏input
元素
然而。由于您有onClick
个事件,因此您的事件会在更改之前运行
这就是为什么你得到old
值。
要解决此问题,请在<{1}}调用后添加以下代码:
screwDefaultButtons
或
$('.styledRadio').on('click', updateRegForm);
请记住从HTML中删除onlick属性。