У меня есть форма и функция jQuery, которая срабатывает, если пользователь меняет поле выбора HTML. Функция собирает всю необходимую информацию и публикует в php-скрипте сообщение ajax.
Я хочу расширить эту функцию новой функцией: если выбранное значение равно предопределенному значению, я хочу отобразить диалог с двумя кнопками. Пользователь должен нажать одну из этих кнопок, и если он это сделает, новая информация будет прикреплена к сообщению.
Простой пример:
Выбор имеет 3 варианта:
— Лимон
— Банан
— Яблоко
Если пользователь выбирает лимон или банан, сценарии отправляют информацию на сервер без дальнейших действий. Но если он выбирает яблоко, мне нужен дополнительный диалог, потому что я хочу спросить, нужен ли ему красный или зеленый. И это нужно приложить к информации, которую я хочу отправить на сервер.
Не могли бы вы помочь мне, ребята, как мне это сделать?
У меня есть только первая часть:
$('select.myList').change( function()
{
var e = $(this)
var val = $(this).val();
var id = $(this).attr('data-id')
var url = 'index.php?process'
$.ajax({
type: "POST",
url: url,
data: { id: id, val: val },
success: function(data){
var o = $.parseJSON(data);
if( o.error )
{
console.log('error:' + o.message);
} else
{
console.log('success:' + o.message);
}
return false;
}
})
return false
})
Во-первых, я бы сказал, что вы должны быть очень осторожны с именами переменных. Вы никогда не должны использовать e
в качестве переменной, если этого можно избежать. Я бы тоже поменял id
а также val
,
В любом случае вы должны иметь возможность использовать beforeSend
Недвижимость в Аяксе: http://api.jquery.com/jquery.ajax/, при условии, что «яблоко» будет val
элемента:
$.ajax({
type: "POST",
url: url,
data: { id: id, val: val },
beforeSend: function() {
if (val === 'Apple') {
//do stuff
}
},
// rest of ajax call
}
Других решений пока нет …