Как изменить значение ввода по клику? - PullRequest
0 голосов
/ 08 февраля 2012

Я загружаю контент через 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 ]

1 голос
/ 08 февраля 2012

Работает как вам нравится

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] не выбирает ваш вход, возможно, используйте здесь идентификатор.

Вы можете установить значение с помощью .val(1)

1 голос
/ 08 февраля 2012

Попробуйте отсортировать один

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

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

});
1 голос
/ 08 февраля 2012

Попробуйте это:

...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();
    });
},
...
0 голосов
/ 08 февраля 2012

Измените свой код на это:

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

И HTML:

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

Так, если проверенное значение станет 1, и 0, если не проверено.

0 голосов
/ 08 февраля 2012

В этом случае должно быть так.$ (this) .val ('значение, которое вы хотите положить');

, если вы не хотите использовать jquery document.getElementById ('id'). value = xxx;но в этом случае не нужно указывать элемент HTML.

0 голосов
/ 08 февраля 2012

Вместо

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

try

$(this).val(1);

// EDIT : Другая ошибка заключается в том, что вы используете this в функции calculate.Здесь this относится к функции, а не к входу.Вы должны использовать jQuery следующим образом:

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

вместо определения обработчика кликов в HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...