是firefox或jquery中的一些错误还是我做错了什么?

时间:2010-04-17 19:01:14

标签: javascript jquery firefox

我想在div点击时更改隐藏的输入值,所以我执行以下操作:

$('#gallery').click(function(){
        if ($('input[name=isgallery]').attr('value') == '0') {
            $('input[name=isgallery]').attr('value', '1')
        }
        else {
            $('input[name=isgallery]').attr('value', '0')
        }
        $('#filterform').attr('action',$('#filterform').attr('act'));
        alert('ok');
        $('#filterform').submit();
    }
    );

当它等于0时,我将其改为1,否则 但它不起作用 以下代码有效:

$('#gallery').click(function(){
        if ($('input[name=isgallery]').attr('value') == '0') {
            $('input[name=isgallery]').attr('value', '0')
        }
        else {
            $('input[name=isgallery]').attr('value', '1')
        }
        $('#filterform').attr('action',$('#filterform').attr('act'));
        alert('ok');
        $('#filterform').submit();
    }
    );

而且,当我删除该功能时,它仍然有效 和表格提交

也许我还有一个这个div的处理程序,但我找不到一个

你可以检查一下 http://www.4block.org/en/museum/posters 并点击右上角的“图库视图”

2 个答案:

答案 0 :(得分:2)

这应该可以更好地跨浏览器,加上更少的DOM遍历来查找元素:)

$('#gallery').click(function(){
  $('input[name=isgallery]').each(function() {
    $(this).val($(this).val() == '0' ? '1' : '0');
  });
  $('#filterform').attr('action',$('#filterform').attr('act')).submit();
});

答案 1 :(得分:1)

尝试使用val()功能更改输入值。