У меня есть элемент select, и я вызываю функцию onclick, она работает отлично, но я хочу вызвать эту функцию, когда элемент загружен, но поскольку ее элемент select может быть создан динамически, я хочу вызвать функцию getPrice, которая должна принимать this.value в качестве параметра при появлении элемента или для его вызова каждую секунду, как я могу это сделать?

<select class="form-control item" name="items[]" onclick="get_price(this.value)">
// Options
</select>

function get_price(item) 
{   
    $.ajax({
      type: "POST",
      url: "getData.php",
      data: {item: item},
      success: function(data) {
        // do stuff
      },
    }); 
}
0
Mathew 5 Окт 2018 в 20:59

1 ответ

Лучший ответ

потому что элемент select может быть создан динамически

Вы можете прикрепить событие из JS-кода:

//JSUT FOR DEMO START
setTimeout(function() {
  $('.item').append('<option>Dynamic option</option>');
}, 500);
//JSUT FOR DEMO END


function get_price() {
  console.log('Perform ajax request with item : ' + $(this).val());
}

$('.item').change(get_price);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select class="form-control item" name="items[]">
  <option>Static option</option>
</select>
2
Zakaria Acharki 5 Окт 2018 в 18:32