如何更改点击输入值?

时间:2012-02-08 07:28:22

标签: jquery checkbox

我通过ajax加载内容,如果点击它们,想要更改每个复选框的值。我试试

function calculate(){
    if($('input[type=checkbox][checked]')) {
        $(this).attr({ 
            value: 1
        });
    } else {
        $(this).attr({ 
            value: 0
        });
    }
    calculatebbb();
}

并添加到每个输入:

<input type="checkbox" name="a003" value="230073" onclick="calculate()">

但它不会检查这个元素,它会清除所有元素。

6 个答案:

答案 0 :(得分:1)

试试这个:

...ajax call...
success: function(data) {
... append Your input elements to #myDiv ...
    $('#myDiv input').bind('click', function(){
        var that = $(this);
        if( that.is(':checked') ) {
            that.val(1)
            } else {
        that.val(0)
        }
        calculatebbb();
    });
},
...

答案 1 :(得分:1)

尝试排序一个

if($('input[type=checkbox]')bind('click', function(){  

    $(this).attr('checked', !$(this).attr('checked')); 

});

答案 2 :(得分:1)

这可以随心所欲地使用

<强> HTML

<input type="checkbox" name="a003" value="230073" onclick="calculate(this);">

<强>的Javascript

function calculate(checkbox){
    console.log($(checkbox));
    if($(checkbox).attr("checked")) {
        $(checkbox).val(1);
    } else {
        $(checkbox).val(0);
    }
    calculatebbb();
}

演示 http://jsfiddle.net/2hy4h/

你做错了什么:

this不是您的输入。如果您使用console.log(this)进行核对。

此外input[type=checkbox][checked]未选择您的输入,也可能在此使用ID。

您可以使用.val(1)

设置值

答案 3 :(得分:0)

而不是

$(this).attr({ 
  value: 1
});

$(this).val(1);

//编辑:另一个错误是你在函数this中使用calculate。这里this指的是函数 - 而不是输入。你应该使用这样的jQuery:

$(document).ready(function() {
  $('input').click(function() {
    // do your things with this
  });
});

而不是在HTML中定义点击处理程序。

答案 4 :(得分:0)

在这种情况下 应该是这样的。  $(this).val('value you wan to put');

如果你不想使用jquery document.getElementById('id')。value = xxx; 但是在这种情况下你要把id为html元素。

答案 5 :(得分:0)

将您的代码更改为:

function calculate(obj) {
    obj.value = obj.checked + 0;
    calculatebbb();
}

和HTML:

<input type="checkbox" name="a003" value="230073" onclick="calculate(this)">

因此,如果选中的值将变为1,如果未选中则为0。

相关问题