#jquery #jquery-select2 #x-editable
#jquery #jquery-select2 #x-редактируемый
Вопрос:
У меня есть редактируемое поле, которое отображается динамически. Я хочу использовать select2 для его обновления.
$(document).ajaxComplete(function () {
$('.marketing_event_id').editable({
emptytext: ".....",
url: "ajax_xeditable_update.php?table=appointments",
source: promo_codes,
select2: {
width: 200,
placeholder: 'Select promotion code...',
allowClear: true,
}
});
});
//get the promo codes for the select2 box for xeditable. put it outside of ajaxcomplete so it doesn't keep firing off for every appt!
var promo_codes = [];
$.getJSON('ajax_get_json.php?what=location_promo_codes', function (data) {
$.each(data, function (index) {
promo_codes.push({
id: data[index].value,
text: data[index].text
});
});
});
Поле select2 отображается со всеми параметрами JSON должным образом для пользователя, но когда выбран параметр и выбрана кнопка «галочка» для обновления поля, ничего не происходит. Я смотрю сетевой экран в Chrome, и URL-адрес для редактируемого поля даже не срабатывает.
Вот как выглядит мое поле html:
echo '<h5>Promotion Code: <a href="#" class="marketing_event_id appointment' . $result->id . '" data-name="marketing_event_id" data-type="select2" data-value="'; if(!empty($result->marketing_event_id)) { echo $result->marketing_event_id; } echo '" data-placement="right" data-original-title="Enter the appointment promo code." data-pk="'. $result->id . '">' . $result->promo_code .'</a></h5>
Поля данных заполнены нормально. Я не вижу в этом ничего плохого.
Вот пример информации getJSON, которая используется для заполнения select2:
[{"value":"663","text":"christmas2015"},{"value":"651","text":"web08"},{"value":"658","text":"paper0815"}]
Я был бы рад предоставить больше кода, если это необходимо.
Кто-нибудь может объяснить, почему URL-адрес не запускается при обновлении поля? Спасибо.
Ответ №1:
Я понял это, но я не совсем понимаю, почему это работает.
Я добавил строку кода в редактируемую область:
$('.marketing_event_id').editable({
emptytext: ".....",
container: 'body', <---- THIS IS WHAT I ADDED TO MAKE IT WORK!!!!
url: "ajax_xeditable_update.php?table=appointments",
source: promo_codes,
select2: {
width: 200,
placeholder: 'Select promotion code...',
allowClear: true,
}
});