2016-09-22 3 views
1

Я использую библиотеку JavaScript SweetAlert2 для отображения всплывающих окон. SweetAlert2 - это вилка SweetAlert, которая больше не поддерживалась. SweetAlert2 позволяет мне добавить радио кнопки, как это имяSweetAlert2 обнаружение переключателя выбора

// inputOptions can be an object or Promise 
var inputOptions = new Promise(function(resolve) { 
    resolve({ 
     '#ff0000': 'Red', 
     '#00ff00': 'Green', 
     '#0000ff': 'Blue' 
    }); 
}); 

swal({ 
    title: 'Select color', 
    input: 'radio', 
    inputOptions: inputOptions, 
    inputValidator: function(result) { 
    return new Promise(function(resolve, reject) { 
     if (result) { 
     resolve(); 
     } else { 
     reject('You need to select something!'); 
     } 
    }); 
    } 
}).then(function(result) { 
    swal({ 
    type: 'success', 
    html: 'You selected: ' + result 
    }); 
}) 

SweetAlert2 дать «swal2-радио» на входы радио, как этот

<input id="swal2-radio-1" type="radio" name="swal2-radio" value="3"> 

Поэтому я стараюсь слушать swal2-радио для любых кликов например:

$("input[name='swal2-radio']").on("click", function() { 
var id = $('input[name=swal2-radio]:checked').val(); 
console.log('id: ' + id); 
}); 

Он должен печатать на консоли, чтобы я знал, что это сработало.

Вот код, который я до сих пор: https://jsfiddle.net/ayx0fkz3/

я делаю что-то неправильно, или это не работает из-за того, как работает SweetAlert2?

ответ

2

необходимо связать событие, связав событие события делегирования со всем документом.

$(document).on("click",".swal2-container input[name='swal2-radio']", function() { 
    var id = $('input[name=swal2-radio]:checked').val(); 
    console.log('id: ' + id); 
}); 

Проверить Fiddle Link

+0

спасибо так много, я бы никогда не понял это моим сам –

Смежные вопросы