0

我有一个我正在创建的表单,它的值需要根据检查的值等进行更改。

我知道我想太多了。

<div>   
   <span align="right">Skill 1:</span>&nbsp;&nbsp;&nbsp;&nbsp;  
   <span class="amt" name="s_Skill1">3</span>&nbsp;&nbsp;
   <input name="i_Skill1" type="checkbox" />
</div>

所以这个特殊技能需要 3 分,但如果选中其他复选框之一,则只有 1 分。我在确定何时检查某些内容以及更改值时遇到了一些问题。

if ($("#i_Skill1").is(':checked')) {
            alert("changing radio button");
            $("#s_Skill1").text("0");
        }

似乎我不得不跳过很多圈,就像我应该能够改变价值观并确定我想要/需要改变什么。

这是一个小提琴 - http://jsfiddle.net/mattcushing/K5szE/31/ 是的,我知道,这是龙与地下城,但这是我儿子要求的,我认为这将是一个很好的尝试 jquery :)

4

2 回答 2

1

#id是 id 选择器,您必须将其更改nameid.

或者有多个这样的 div,你最好使用class.

<div>   
   <span align="right">Skill 1:</span>&nbsp;&nbsp;&nbsp;&nbsp;  
   <span class="amt" name="s_Skill1" class="s_Skill">3</span>&nbsp;&nbsp;
   <input name="i_Skill1" class="i_Skill" type="checkbox" />
</div>

然后:

$('.i_Skill').each(function() {
  if ($(this).is(':checked')) {
    $(this).siblings('.s_Skill').text('0');
  }
});
于 2013-08-02T03:00:11.777 回答
0

您应该引用元素byname,而不是 byid因为在这种情况下它们没有指定。

if ($('span[name="i_Skill1"]').is(':checked')) {
    alert("changing radio button");
    $('input[name="s_Skill1"]').text("0");
}
于 2013-08-02T03:02:43.080 回答