Подтвердить что ты не робот

Twitter Bootstrap Модальная форма Отправить

Я недавно занимался twitter bootstrap, используя java/jboss, и я пытался отправить форму из модального интерфейса, форма содержит только скрытое поле, и ничто другое, отображающее и т.д., не имеет значения.

Форма внешняя по отношению к самому модальному, и я просто не могу понять, как это будет возможно

Я попытался добавить сам модал в форму, пытаясь использовать форму HTML5 = "form_list" и даже добавить форму в модальное тело и использовать некоторый jquery, чтобы заставить submit, но ничего не работает

Ниже приведен образец модальности, который я пытался увеличить до нужного мне, кнопка OK ранее редактировалась, чтобы попытаться вызвать функции jquery.

    <div class='modal small hide fade' id='myModal' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
        <div class='modal-header'>
            <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>×</button>
            <h3 id='myModalLabel'>Delete Confirmation</h3>
        </div>
        <div class='modal-body'>
            <p class='error-text'>Are you sure you want to delete the user?</p>
        </div>");
        <div class='modal-footer'>
        <button class='btn btn-danger' data-dismiss='modal' aria-hidden='true'>Cancel</button>
        <button class='btn btn-success' data-dismiss='modal'>Ok</button>
        </div>
    </div>
4b9b3361

Ответ 1

Вы хотите закрыть мода после отправки? Является ли форма внутри модальной или внешней по отношению к ней, вы должны использовать jQuery ajax для отправки формы.

Вот пример с формой внутри модального:

<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>

<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
            <h3 id="myModalLabel">Modal header</h3>
    </div>
    <div class="modal-body">
        <form id="myForm" method="post">
          <input type="hidden" value="hello" id="myField">
            <button id="myFormSubmit" type="submit">Submit</button>
        </form>
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
        <button class="btn btn-primary">Save changes</button>
    </div>
</div>

И jquery ajax, чтобы получить поля формы и отправить его.

$('#myFormSubmit').click(function(e){
      e.preventDefault();
      alert($('#myField').val());
      /*
      $.post('http://path/to/post', 
         $('#myForm').serialize(), 
         function(data, status, xhr){
           // do something here with response;
         });
      */
});

Работа над Bootply: http://bootply.com/59864

Ответ 2

Этот ответ задерживается, но я все равно надеюсь, что это поможет кому-то. Как и вы, я также затрудняюсь с отправкой формы, которая была вне моего модального метода загрузки, и я не хотел использовать ajax, потому что мне нужна вся новая страница для загрузки, а не только часть текущей страницы. После долгих проб и ошибок здесь jQuery, который работал у меня:

$(function () {
    $('body').on('click', '.odom-submit', function (e) {
        $(this.form).submit();
        $('#myModal').modal('hide');
    });
});

Чтобы сделать эту работу, я сделал это в модальном нижнем колонтитуле

<div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary odom-submit">Save changes</button>
</div>

Обратите внимание на добавление в класс odom-submit. Вы можете, конечно, называть его тем, что подходит для вашей конкретной ситуации.

Ответ 3

Старый, но, возможно, полезен для читателей, чтобы иметь полный пример использования модального.

Мне нравится следующее (рабочий пример jsfiddle):

$('button.btn.btn-success').click(function(event)
{

event.preventDefault();

$.post('getpostcodescript.php', $('form').serialize(), function(data, status, xhr)
    {
        // do something here with response;
        console.info(data);
        console.info(status);
        console.info(xhr);
    })
    .done(function() {
        // do something here if done ;
        alert( "saved" );
    })
    .fail(function() {
        // do something here if there is an error ;
        alert( "error" );
    })
    .always(function() {
        // maybe the good state to close the modal
        alert( "finished" );
        // Set a timeout to hide the element again
        setTimeout(function(){
          $("#myModal").hide();
        }, 3000);
    });
});

Чтобы облегчить работу с модалами, я рекомендую использовать eModal, которые позволяют быстрее работать с базовым использованием модальности bootstrap 3.

Ответ 4

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