1

1つのフォームに2つのグループのラジオボタンを設定しています。

<li>1&nbsp;<Input type = 'radio' id ='part1no' Name ='part1' value= '0'>No
           <Input type = 'radio' id ='part1yes' Name ='part1'  checked="checked" value= '1'>Yes
</li>
<li>2&nbsp;<Input type = 'radio' id ='part2no' Name ='part2'  value= '0'>No
           <Input type = 'radio' id ='part2yes' Name ='part2' checked="checked" value= '1'>Yes
</li>

私はこのjavascript関数を介してそれらのボタンの値を送信しようとしています:

var dataString = 'username='+SessionVars.my_username+'&lessonid='+SessionVars.my_lesson_number;

$('#tracking_submit').click(function(){
    $.ajax({
        url: "php/tracking.php",
        type:'POST',
        data: dataString+'&p1='+$("input[@name=part1]:checked").val()+'&p2='+$("input[@name=part2]:checked").val(),
        success: function(){
            $('#tracking_message').html("Thank you for updating.").fadeIn('slow');              
            setTimeout(function(){$('#tracking_message').fadeOut('slow');},2000);
        }                   
    });
    return false;   
});

問題は、データベースをチェックすると、最初のラジオボタンの値に設定された両方のフィールドが更新されることです。最初のものが「はい」に設定されている場合、両方が1に設定され、最初のものが0に設定されている場合、両方が0になります。これを引き起こしている可能性があるものについて誰かが何か考えを持っていますか?

4

1 に答える 1

1

は文字$("input[@name=part1]:checked").val()を持ってはいけません@。これはXPath構文であり、jQueryセレクター構文ではありません。

jQueryはおそらくその「@attribute」リクエストを無視し(無効であるため)、すべてinputのを見つけ.val()て、セットの最初の値を返します。

于 2012-09-15T22:12:02.080 に答える