0

我有一个包含单选按钮的表单。它们被命名为 option1、option2 和 option3。这些单选按钮中的每一个都有 3 个不同的潜在值。

我需要在表单下方显示当前“已检查”的值。我一直在关注 jquery 指南并且非常困惑。

<script>
function displayVals() {
  var opt1 = $('input:radio[name=option1]:checked').val() || [];
  var opt2 = $('input:radio[name=option2]:checked').val() || [];
  var opt3 = $('input:radio[name=option3]:checked').val() || [];
  $("p").html("First item is " + opt1.join(", ") + " the second is " + opt2.join(", ") + " and third is " + opt3.join(", ") + ".");
}

$("input").change(displayVals);
displayVals();

但是,表单下方不会显示任何内容。例如,option1 可以是白色、红色或黑色。如果他们检查黑色,我需要它说“第一个项目是黑色的,第二个是什么,第三个是什么。” 每当其中一个值更改时,表格下方就会更新。

4

2 回答 2

1

这应该有效。这是小提琴jsfiddle

function displayVals() {
  var opt1 = $('input:radio[name=option1]:checked').val() || '';
  var opt2 = $('input:radio[name=option2]:checked').val() || '';
  var opt3 = $('input:radio[name=option3]:checked').val() || '';
  $("p").html("First item is " + opt1 + ", the second is " + opt2 + ", and third is " + opt3 + ",.");
}

$("input:radio").click(displayVals);
displayVals();​
于 2012-09-22T13:03:44.793 回答
0

val()返回一个字符串或undefined从不返回一个数组。所以这应该是

function displayVals() {
    var opt1 = $('input:radio[name=option1]:checked').val() || 'not selected';
    var opt2 = $('input:radio[name=option2]:checked').val() || 'not selected';
    var opt3 = $('input:radio[name=option3]:checked').val() || 'not selected';

    $("p").html("First item is " + opt1 + " the second is " + opt2 + " and third is " + opt3 + ".");
}
于 2012-09-22T12:54:32.040 回答