如何使用jQuery和单选按钮切换两个图像?

时间:2010-06-08 04:25:40

标签: jquery forms radio-button

这不是很好,但我认为你会得到我想要的东西。

<label><input name="jpgSel" type="radio" value="0">jpg 1</label><br />
<label><input name="jpgSel" type="radio" value="1">jpg 2</label><br />
<div id="showjpg"></div>

$(document).ready(function() {
    $("select").change(function () {
           if ($("jpgSel:checked").val() == 1) {
            $('#showjpg').attr({
                src: 'one.jpg',
                 alt: 'one dot jpg'
        });
    }
    else {
            $('#showjpg').attr({
                 src: 'two.jpg',
                 alt: 'two dot jpg'
        });
    }
});

3 个答案:

答案 0 :(得分:1)

if ($("jpgSel:checked").val() == 1) {

应该阅读

if ($("#jpgSel:checked").val() == 1) {

还是那个错字?

此外,您可能希望自己使用$('#jpgSel:checked') w / out == 1

修改

哦和$("input[@name='jpgSel']").click(function(){可能会更好。

答案 1 :(得分:0)

您有几个问题:

  • #showjpg元素是div,您应该有一个img元素。
  • 用于绑定change事件的选择器不正确($("select")),它应该类似于$("input[name=jpgSel]")
  • 如果将更改事件绑定到两个单选按钮,则只需this.value即可获取所选元素的值。

试试这个:

$(document).ready(function() {
  $("input[name=jpgSel]").change(function () {
    if (this.value == "0") {
      $('#showjpg').attr({
        src: 'one.jpg',
        alt: 'one dot jpg'
      });
    } else {
      $('#showjpg').attr({
        src: 'two.jpg',
        alt: 'two dot jpg'
      });
    }
  });
});

查看示例here

答案 2 :(得分:0)

jpgSel是一个名字,必须像这样选择

$("[name='jpgSel']:checked") 

虽然我认为废弃它并使用像这样的.click()函数会更容易

$("[name='jpgSel'][value='0']").click(function{/*do something*/});
$("[name='jpgSel'][value='1']").click(function{/*do something else*/});