Селектор jquery в успехе ajax

Я использую функцию ajax для вставки данных в php-скрипт. В случае успеха я запрашиваю базу данных и повторяю все элементы следующим образом:

include ("Database/RepairsdbConn.php");
$qryItem = $conn->prepare("SELECT SAP, Name FROM tblusedmaterial WHERE item = ?");
$Key = $_POST[MaterialTypeID];
$qryItem->execute(array($Key));
while($item = $qryItem->fetch(PDO::FETCH_ASSOC)) {
    echo '<div class="row">
            <div class="col-md-4">
                <input type="text" value="'.$item['SAP'].'" class="form-control input-sm">    
            </div>
            <div class="col-md-4">
                <input type="text" value="'.$item['Name'].'" class="form-control input-sm" style="width: 300px">
            </div>
            <div class="col-md-2">
                <input type="text" class="form-control input-sm" style="width: 40px">    
            </div>
            <div class="col-md-4">
                <button type="button" class="btn btn-default btn-xs" id="AddQuantity">
                    <span class="glyphicon glyphicon-plus"></span>
                </button>
            </div>
            </div>
            <p></p>';
}

Это создаст форму со всеми продуктами из базы данных и вводом для добавления количества и кнопкой для нажатия (+), чтобы увеличить количество.

Когда я обращаюсь к кнопке на jquery, ничего не происходит.

        $('#AddQuantity').click(function () {
            alert('TEST');
        });

Как я могу обратиться к каждой кнопке только один раз?


person user3163404    schedule 21.01.2014    source источник
comment
Вы определили обработчик события клика AddQuantity до или после вызова ajax?   -  person alexmac    schedule 21.01.2014
comment
ID означает идентификатор и должен быть уникальным. У вас не может быть всех кнопок с идентификатором AddQuantity. Используйте класс.   -  person Anthony Grist    schedule 21.01.2014
comment
Нет, id должен быть уникальным только по форме!   -  person alexmac    schedule 21.01.2014
comment
Но могу ли я использовать родительский, дочерний или ближайший jquery?   -  person user3163404    schedule 21.01.2014
comment
@Александр Что??? Идентификаторы должны быть уникальными в контексте документа.   -  person A. Wolff    schedule 21.01.2014
comment
Событие определяется после вызова ajax   -  person user3163404    schedule 21.01.2014
comment
@А. Вольф, попробуйте добавить два элемента с одинаковым идентификатором. Что произошло?   -  person alexmac    schedule 21.01.2014
comment
@ Александр, попробуй, что происходит, когда ты хочешь связать событие?... jsfiddle.net/7RYb9   -  person A. Wolff    schedule 21.01.2014
comment
@Alexander Спецификация требует, чтобы идентификатор был уникальным во всем документе. Браузеры не применяют это требование при анализе HTML, но такие вещи, как document.getElementById(), будут возвращать только один элемент с указанным идентификатором, даже если их несколько. Весь смысл идентификатора и селектора идентификатора заключается в том, чтобы указать на единственный уникальный элемент.   -  person Anthony Grist    schedule 21.01.2014
comment
Кнопка как уже класс из Bootstrap. Должен ли я изменить это =   -  person user3163404    schedule 21.01.2014
comment
@А. Вольф, Энтони Грист, да, вы правы. ID может быть не уникальным, но это может добавить проблем.   -  person alexmac    schedule 21.01.2014
comment
@user3163404 user3163404 Просто добавьте к нему новый класс при создании HTML в вашем PHP-коде. Если Bootstrap полностью не перезапишет их, это не будет проблемой.   -  person Anthony Grist    schedule 21.01.2014
comment
Как я могу добавить новый класс? Должен ли я удалить тот, что на кнопке?   -  person user3163404    schedule 21.01.2014


Ответы (1)


удали id с кнопки и выбери кнопку с классом

    $('.col-md-4 .btn').on('click', function () {
        alert('TEST');
    });
person kasper Taeymans    schedule 21.01.2014