Как отменить выбор выпадающего списка при нажатии кнопки отмены с помощью jQuery?

-3

Привет, ребята, я получил следующий код из сети и был изменен в соответствии с моей потребностью, но не работал должным образом.

var lastValue;

$("#changer").bind("click", function(e){
lastValue = $(this).val();
}).bind("change", function(e){
changeConfirmation = confirm("Really?");
if (changeConfirmation) {
// Proceed as planned
} else {
//$(this).val(lastValue);
DummyFun();
}
});

function DummyFun()
{
alert(lastValue);
$(this).val(lastValue);
}

Вот код, где я получил от и она работает нормально скрипку. Как я могу работать как на скрипке?

спросил(а) 2014-12-03T22:29:00+03:00 5 лет назад
2
2 ответа
45

Проблема заключается в функции DummyFun. this не относится к элементу ввода больше не в области. this относится к тому, что вызывает функцию. используйте следующее:

var lastValue;

$("#changer").bind("click", function(e){
lastValue = $(this).val();
}).bind("change", function(e){
changeConfirmation = confirm("Really?");
if (changeConfirmation) {
// Proceed as planned
} else {
//$(this).val(lastValue);
DummyFun(e.currentTarget);
}
});

function DummyFun(target)
{
alert(lastValue);
$(target).val(lastValue);
}

ответил(а) 2014-12-03T22:44:00+03:00 5 лет назад
46

Вы не можете использовать $(this) в своей функции DummyFun, чтобы ссылаться на элемент select, потому что это вне сферы действия.

function DummyFun()
{
alert(lastValue);
$("#changer").val(lastValue);
}

ответил(а) 2014-12-03T22:42:00+03:00 5 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема