Использование переменной в jQuery для выполнения функции - PullRequest
0 голосов
/ 06 января 2011

Может кто-нибудь сказать мне, что не так с этим кодом? Кажется, он вообще не распознает селектор '#del[' + cid + ']'. Какое точное имя идентификатора в моем коде PHP.

$(function() {
    var cid = '<?=$row['c_id'];?>';
    $('#del[' + cid + ']').click(function() {
        alert('clicked!');
        var oldqty = <?=$row['qty'];?>;
        var qtyID = "'" + '#qty' + cid + "'";
        alert(qtyID);
        if ($(qtyID).is(':checked')) {
            $(this).(function() {
                $(this).val(0);
            });
        };
        if($(qtyID).not(':checked')) {
            $(this).(function() {
                $(this).val(0);
            });
        };
    });
});

Вот код PHP, который реализует $row['c_id']:

echo "<input class=\"number aln_center\" type=\"text\" name=\"qty[" . $row['c_id'] . "]\" id=\"qty" . $row['c_id'] . "\" value=\"" . $row['qty'] . "\" size=\"3\" onchange=\"return validateChgMLQty('qty" . $row['c_id'] . "'," . $row['qty'] . ");\" />\n";
echo "<input type=\"hidden\" name=\"telco[" , $row['c_id'] . "]\" id=\"telco" . $row['c_id'] . "\" value=\"" . $row['btelco'] . "\" />\n";
echo "<br />Delete\n";
echo "<input type=\"checkbox\" name=\"del[" . $row['c_id'] . "]\" id=\"del" . $row['c_id'] . "\" />\n";

Я пытаюсь изменить значение в операторе ввода на «0», если установлен флажок «Удалить», а затем вернуться к исходному содержимому, если оно не отмечено. Он даже не попадает в первое окно оповещения, поэтому он не имеет ничего общего с qtyID, и при просмотре источника строка 'var cid' заполняется правильным целым числом, переданным из переменной PHP $row['c_id'].

Ответы [ 2 ]

0 голосов
/ 06 января 2011

Спасибо всем!

Окончательное решение было:

$(function() {
    var cid = "<?=$row['c_id'];?>";
    var oldqty = "<?=$row['qty'];?>";
    $('#del' + cid).change(function() {
        if ($('#del' + cid).is(':checked')) {
            $('#qty' + cid).val(0);
            return;
        };
        if($('#del' + cid).not(':checked')) {
            $('#qty' + cid).val(oldqty);
            return;
        };
    });
});
0 голосов
/ 06 января 2011
var qtyID = "'" + '#qty' + cid + "'";

Эта строка является проблемой.Вам не следует добавлять кавычки в начало и конец строки.

Это создаст строку наподобие "'#qty6'", которая не будет работать в селекторе jQuery.

Этодолжно быть просто:

var qtyID = '#qty'+cid;

Этот селектор:

 $('#del[' + cid + ']')

Должен быть:

 $('#del'+cid)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...