单击复选框时如何更改某些文本?

时间:2011-01-13 08:36:55

标签: javascript jquery checkbox

我有一个包含复选框和价格的三个项目的表单。在下面的一个段落中,我有一个总价格的区域,以及所选项目的区域。如何在选中每个复选框时更新这两个区域?

<form>
<input type="checkbox" name="milk" id="checkbox" value="10.00"/>£10.00<br/>
<input type="checkbox" name="eggs" id="checkbox2" value="20.00"/>£20.00<br/>
<input type="checkbox" name="cheese" id="checkbox3" value="30.00"/>£30.00<br/>
If you buy <span>name of items here</span>, it will cost you a total of £<span>price here</span>.
<input type="submit"/>
</form>

如何使用jQuery或JavaScript实现这一目标?我真的不想使用文本框来放置值,我宁愿它们是内联文本。所以我想要第一位的对象名称,以及第二位的总价格。

3 个答案:

答案 0 :(得分:3)

的jQuery

$(':checkbox').change(function() {
    var sum = 0;
    var names = $('form :checked').map(function(){
        sum += (this.value - 0);
        return this.name;
    }).get().join(',');

    var spans = $('form span');
    spans[0].innerHTML = names;
    spans[1].innerHTML = sum;
});

HTML

<form>
    <input type="checkbox" name="milk" id="checkbox" value="10.00"/>£10.00<br/>
    <input type="checkbox" name="eggs" id="checkbox2" value="20.00"/>£20.00<br/>
    <input type="checkbox" name="cheese" id="checkbox3" value="30.00"/>£30.00<br/>
    If you buy <span>name of items here</span>, it will cost you a total of £<span>price here</span>.
    <input type="submit"/>
</form>

演示

simple demo

答案 1 :(得分:2)

我已经使用jquery来达到你的要求。试试这个 -

<form>
<input type="checkbox" name="milk" id="checkbox" value="10.00"/>£10.00<br/>
<input type="checkbox" name="eggs" id="checkbox2" value="20.00"/>£20.00<br/>
<input type="checkbox" name="cheese" id="checkbox3" value="30.00"/>£30.00<br/>
If you buy <span id="name">name of items here</span>, it will cost you a total of £<span id="price">price here</span>.
<input type="submit"/>
</form>


$(document).ready(function(){

 $('input[type="chechbox"]').click(function()[

  if($(this).is(':checked')){

   $('#price').html($(this).val());
   $('#name').html($(this).attr('name'));

  }else{

   $('#price').html('Price');
    $('#name').html('name');
  }

 });

});

答案 2 :(得分:1)

使用纯JS(未经测试)

   handleCheckbox = function(){
      if(this.checked) {
        document.getElementByTagName("span")[0].innerText = this.attributes["name"].value;
        document.getElementByTagName("span")[1].innerText = this.value;
      }
    }

但是,应该有无线电而不是复选框。在复选框

上添加onClick="handleCheckbox"