当promise返回false时,阻止select更改其选项

时间:2018-12-20 10:33:22

标签: jquery

我单击一个选择元素,然后出现选项。我单击一个选项,然后出现一个提示对话框,带有“确定”和“取消”按钮。如果用户选择“确定”,则select元素将更改其选项,否则不会更改。

我曾尝试过以下解决方案,但没有成功。也许问题是我不确定e.preventDefault()语句。我该如何解决?什么是最佳做法?

var deferred = function () {
    return new Promise((resolve, reject) => {
        try {  
            //a prompt dialog box appears with 'ok' and 'cancel' button
            //user clicked cancel so returning false
            return resolve(false);
        } catch (error) {
            reject(error);
        }
        return reject(new Error('error'));
    });
}


$('#my_selectList').on('change', function (e) {
    deferred().then((data) => {
        if (!data) {
             //prevent the select list from changing its options.
             e.preventDefault();
        }
    }).catch((data) => {
        return false;
    });
});

0 个答案:

没有答案