Это не то, как предполагается использовать помощник подтверждения - ваш вариант использования в значительной степени требует от вас использования помощника диалога. Как минимум, чтобы заставить работать то, что у вас есть , вероятно, , вам нужно захватить событие onsubmit
формы, которую вы вставляете в диалог.
Вот пример. Я также переместил вашу форму в тег шаблона сценария, так как он делает остальное чище:
Шаблон:
<script type="text/template" id="form-template">
<form id="newGameForm" action="">
Playlist ID: <br>
<input type="text" name="playlistID" size="35"><br>
Ruleset: <br>
<label><input type="radio" name="rules" value="classic" checked> Classic</label> <br>
<label><input type="radio" name="rules" value="adv"> Advanced</label> <br>
</form>
</script>
JavaScript:
var template = $('#form-template').html();
var $dialog = bootbox.confirm({
message: template,
callback: function (result) {
if (result) {
let newGameParams = $('#newGameForm').serializeArray().reduce(function (obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
initGame(newGameParams);
}
}
});
$dialog.on('shown.bs.modal', function(e){
var $form = $('#newGameForm');
$form.on('submit', functino(fe){
fe.preventDefault();
$dialog.find('.btn-primary').trigger('click');
});
});
Это работает только в том случае, если вы не переопределяете класс btn на кнопке подтверждения, но, как есть, в основном вызывает нажатие кнопки подтверждения при отправке встроенной формы. Этот пример подключается к событию отправки формы для события said.bs.modal (эта ссылка предназначена для Bootstrap 4, но то же событие доступно в Bootstrap 3).