2009-07-30 4 views
2

Я начинаю программировать в веб-дизайне и javascript, и интересно, может ли кто-нибудь дать мне простой пример модального диалога подтверждения перед формой с несколькими кнопками отправки, которые отправляются с помощью заранее определенной кнопки? Я наткнулся на jQuery и SimpleModal и задаюсь вопросом, будет ли он соответствовать моему проекту ASP MVC.Как сделать модальное диалоговое окно подтверждения перед отправкой формы?

я оказался в следующих нерабочих кодах, я думаю, что моя первая проблема не знает, как вернуть значение из диалогового окна ?:

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("form").submit(function(ev) { 
      return confirm("Confirm?"); 
     }); 
    }); 

    function confirm(message) { 
     $("#confirm").modal({ 
      close: true, 
      overlayId: "confirmModalOverlay", 
      containerId: "confirmModalContainer", 
      onShow: function modalShow(dialog) { 
       dialog.overlay.fadeIn("slow", function() { 
        dialog.container.fadeIn("fast", function() { 
         dialog.data.hide().slideDown("slow"); 
        }); 
       }); 

       dialog.data.find(".confirmMessage").append(message); 
       dialog.data.find(".btnYes").click(function() { 
        $.modal.close();          
       }); 
      } 
     }) 
    }   
</script> 


<div id="confirm" style="display:none"> 
    <a href="#" title="Close" class="modalCloseX simplemodal-close">x</a> 
    <div class="confirmHeader"><span>Confirm</span></div> 
    <p class="confirmMessage"></p> 
    <div class="buttons"> 
     <div class="btnYes">Yes</div><div class="btnNo simplemodal-close">No</div> 
    </div> 
</div> 

Было бы хорошо, если бы кто-нибудь направить меня где-то онлайн для краш-курса веб-программирования :)

+0

Вы не можете иметь модальное диалоговое окно, потому что это будет угнать способность браузера для отображения других вкладок. (И нет, это никогда не бывает приемлемым.) Однако вы можете сделать оверлей на самой странице с помощью JavaScript, о чем я расскажу другим, чтобы объяснить. –

+0

Я обновил свой ответ, чтобы включить возможную реализацию boxy для вашего скрипта. – LiamGu

ответ

3

Лично я не делал этого так.

Boxy - это плагин jQuery, который уже имеет контрольный элемент.

Пример для этого заключается в следующем:

$('#confirm-actuator').click(function() { 
    Boxy.confirm("Please confirm:", function() { alert('Confirmed!'); }, {title: 'Message'}); 
    return false; 
}); 

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

EDIT : Реализация для вас будет ....

$(document).ready(function() { 
    $("form").submit(function(ev) { 
     $('#mySubmitBtn').click(function() { 
      Boxy.confirm("Are you sure?", function() { /**DO ACTION FOR CONFIRM**/ }, {title: 'Confirm'}); 
      return false; 
     }); 
    }); 

}); 

А затем поместить идентификатор на кнопку отправки в mySubmitBtn.

Я не тестировал этот код с руки, но, надеюсь, сделаю трюк.

Надеюсь, это поможет.

Хотя в соответствии с разработчиком этот метод не предназначен для замены встроенной функции window.confirm(), предоставляемой браузерами, поскольку она не имеет возможности блокировать выполнение программы, пока диалог виден.

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

+0

Большое спасибо за вашу помощь. Я пробовал Boxy и узнал немного больше обо всех этих javascript-материалах.Однако я не могу заставить его работать слишком хорошо, и я закончил использовать другой плагин jQuery (плагин поля для чтения/установки скрытых полей) и встроенный диалог подтверждения для моего текущего проекта. – William

+0

Что вы имеете в виду, вы не можете заставить его работать слишком хорошо? У меня было несколько проблем, когда я впервые попытался использовать его, но я рад помочь, если смогу. Не забудьте проголосовать и отметить как ответ, если это поможет. Хотя я здесь новый, поэтому я не уверен, что все это делают или нет. – LiamGu

1

При отправке формы вам не нужно использовать jquery для простого модального диалогового подтверждения. Браузер предоставляет несколько модальных системных диалоговых окон. Один из них «подтверждает».

Этот простой Javascript должен сделать следующее:

<form method="post" action="myurl.aspx" onsubmit="return confirm('Submit this form?')"> 
... 
</form> 

Для аварии, конечно, вы могли бы проверить W3Schools или просто поиск Google для учебных пособий.

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