如何添加元素旁边的输入文本字段的值?

时间:2014-03-28 01:17:31

标签: javascript php jquery

我有一个由php生成的动态表单。

  print '<div class="choices">';
    print '<input type="radio" class="answer' . $q . '" id="answer'. $q . '" name="answer'. $q . '"value="1"/>' . $row['answer1'] .'<br/>';
    print '<input type="hidden" class="answer' . $q . '" id="answer'. $q . '" name="answer'. $q . '"value="1"/>';

    print '<input type="radio" class="answer' . $q . '" id="answer'. $q . '" name="answer'. $q . '"value="2"/>' . $row['answer2'] .'<br/>';
    print '<input type="hidden" class="answer' . $q . '" id="answer'. $q . '" name="answer'. $q . '"value="1"/>';

    print '<input type="radio" class="answer' . $q . '" id="answer'. $q . '" name="answer'. $q . '"value="3"/>' . $row['answer3'] .'<br/>';
    print '<input type="hidden" class="answer' . $q . '" id="answer'. $q . '" name="answer'. $q . '"value="1"/>';

    print '<input type="radio" class="answer' . $q . '" id="answer'. $q . '" name="answer'. $q . '"value="4"/>' . $row['answer4'] .'<br/>';
    print '<input type="hidden" class="answer' . $q . '" id="answer'. $q . '" name="answer'. $q . '"value="1"/>';

    print '<input type="hidden" class="your" id="answer" name="correctanswer'. $q . '" value="0"/>';

    print '</div>';

我想更改隐藏的输入类型的值,该值具有div your旁边的.choices类。我使用下面的jQuery。

$('input[type=radio]').on('click', function(){
//  alert(this.value);
    $(".choices ~ .answer").val(this.value);

});

但它不起作用。有什么建议吗?

编辑:

HTML

1 个答案:

答案 0 :(得分:1)

首先,您在多个元素上拥有相同的ID。 ID应该是唯一的。我不清楚input.your的位置,你的描述说它是div.choices的兄弟,但代码表明它是div.choices的孩子......

如果input.your是div.choices的兄弟:

    $('input[type=radio]').on('click', function(){
        $(this).parent().siblings('.your').val($(this).val());
    });

如果input.your是div.choices的孩子:

    $('input[type=radio]').on('click', function(){
        $(this).siblings('.your').val($(this).val());
    });

编辑:误解了问题