单选按钮未提交

时间:2014-04-23 10:42:44

标签: javascript php jquery html forms

$(".dist_radio").click(function(event) {
        event.preventDefault();
        $(".dist_radio").removeClass('dist_on');
        $(".dist_radio").children('input').attr('checked', false);
        $(this).addClass('dist_on');
        $(this).children('input').attr("checked", true);
    });

是我处理自定义样式单选按钮的方式,如果我点击单个广播(#1)并提交表单一切正常 - 它的发送没有错误({ {1}}),如果我选择另一个单选按钮(note that I'm having my form submit in a new window)并再次提交表单,则发送给定的无线电没有任何问题,但如果我再点击之前提交的单选按钮({ {1}}),我收到验证错误,即使通过使用firebug检查元素,我还没有选择任何单选按钮,我可以看到它已设置#2

为什么会这样,我该怎么做才能解决它?

3 个答案:

答案 0 :(得分:1)

使用.prop()代替.attr()获取属性值

$(".dist_radio").click(function(event) {
    event.preventDefault();
    $(".dist_radio").removeClass('dist_on');
    $(".dist_radio").children('input').prop('checked', false);
    $(this).addClass('dist_on');
    $(this).children('input').prop("checked", true);
});

答案 1 :(得分:0)

从一张幻灯片到下一张幻灯片的转换由您的submitHandler处理,因此单选按钮需要做的是点击提交表单,并记住:

$('input[type=radio]').click(function() {
    $(this).closest("form").submit();
});

答案 2 :(得分:0)

偶然发现这个问题并花了好几个小时来解决它。这就是原因:

.prop() vs .attr()