带有jquery的图像复选框表单

时间:2012-04-16 07:19:11

标签: jquery html

我想创建一个复选框表单,其中包含鼠标悬停在图像上并使用jquery检查图像功能。

我成功完成了这项功能但效果不佳。

这是我的html表单。

<label for="w_interest">
    <img src="/images/account/w_select.png_img"/ style='cursor:pointer;'>
    <input name="w_interest" type="checkbox" id="w_interest" style="display:none">
</label>

这里是jquery

$(document).ready(function () {
  $('#img').hover(
     function () {
         $(this).attr('src', '/images/account/ws_145_hover.png');
      },
     function () {
         $(this).attr('src', '/images/account/ws_145.png');
      }
  );

  $("#img").click(function() {
     if(1) {
         $(this).attr("src", "/images/account/ws_145_checked.png");
         $("#w_interest").val("0");
     } else {
         $(this).attr("src", "/images/account/ws_145.png");
         $("#w_interest").val("1");
     }
  });
});
  1. 单击图像时,它会变为检查图像。但是,当我将鼠标移出时,它会变为原始图像。我想确保它留在检查图像。

  2. 我想确保它检查复选框输入。

  3. 如果用户再次单击选中的图像,则会取消选中复选框输入。

  4. 你能帮助我修复jquery来实现这个目标吗?

3 个答案:

答案 0 :(得分:2)

请参阅此示例:http://jsfiddle.net/tErvQ/

代码:

$('.imag_box img').hover(
     function () {
         if($(this).next().val() !== "1") {
             $(this).attr('src', 'http://placehold.it/150/000000/fbaf5d');
         }
      },
     function () {
         if($(this).next().val() !== "1") {
             $(this).attr('src', 'http://placehold.it/150/000000/ffffff');
         }
     }
  );


$(".imag_box img").click(function() {
    if($(this).next().val() !== "1") {
         $(this).attr("src", "http://placehold.it/150/000000/00ff18");
         $(this).next().val("1");
    } else {
         $(this).attr("src", "http://placehold.it/150/000000/ffffff");
         $(this).next().val("0");
    }
});

希望这就是你所需要的:)

使用选中的属性可能更好一点,因为如果您要提交表单,可能会在帖子中更好地处理。

答案 1 :(得分:0)

如果(1){

是错字

我认为你应该与

进行比较
if($("#w_interest").val() == 1)

答案 2 :(得分:0)

试试这个:

$(document).ready(function () {
    var images = [
        '/images/account/ws_145.png',
        '/images/account/ws_145_hover.png'
    ];
    var $w_interest = $("#w_interest");
    var $img = $('#img');
    $img.hover(function () {
        $img.attr('src', images[1]);
    }, function () {
        if($w_interest.val() == "0") {
            $img.attr("src", images[0]);
        }
    });

    $img.click(function() {
        if($w_interest.val() == "1") {
            $img.attr("src", images[0]);
            $w_interest.val("0");
        } else {
            $img.attr("src", images[1]);
            $w_interest.val("1");
        }
    });
});