none
вопрос при уходе с формы RRS feed

  • Общие обсуждения

  • Подскажите как сделать, чтобы при уходе с формы пользователю задавался вопрос - Вы действительно хотите уйти с формы? Это нужно в случае когда пользователь редактирует например свой профиль и нажимает на линк перехода на другую страницу не нажав на Сохранить.
    21 февраля 2014 г. 4:01

Все ответы

  • Можно используя JQuery, метод one. Вот примерно так:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title></title>
      <script src="Scripts/jquery-1.8.2.js" type="text/javascript"></script>
    </head>
    <body>
      <form id="form1" runat="server" clientidmode="Static">
        <input type="text" />
        <input type="submit" value="Save" id="Save" disabled="disabled" />
      </form>
      <script type="text/javascript">
    
        var inputChangeTracker = false;
    
        $("#form1").one("change", ":input", function () {
          inputChangeTracker = true;
          $('#Save').removeAttr('disabled');
        });
    
        $('#Save').click(function () {
          inputChangeTracker = false;
        });
    
        function UnloadTrigger() {
          if (inputChangeTracker) {
            return "Вы хотите покинуть страницу? Есть несохранённые данные.";
          }
        }
    
        window.onbeforeunload = UnloadTrigger;
    
      </script>
    </body>
    </html>



    Сделаем содержимое сообщества лучше, вместе!

    21 февраля 2014 г. 5:55
    Модератор
  • Спасибо за ответ, но Ваш код не работает у меня - кнопка save задизеблина всегда
    21 февраля 2014 г. 7:41
  • Код работающий, если всё делаете правильно. Может там меняете что, то и какой браузер у вас?

    Сделаем содержимое сообщества лучше, вместе!

    21 февраля 2014 г. 7:43
    Модератор
  • Браузеры прбовал хром и фф.

    <head runat="server">
        <title></title>
        
         <script type="text/javascript">
    
             var inputChangeTracker = false;
    
             $("#form1").one("change", ":input", function () {
                 inputChangeTracker = true;
                 $('#Save').removeAttr('disabled');
             });
    
             $('#Save').click(function () {
                 inputChangeTracker = false;
             });
    
             function UnloadTrigger() {
                 if (inputChangeTracker) {
                     return "Вы хотите покинуть страницу? Есть несохранённые данные.";
                 }
             }
    
             window.onbeforeunload = UnloadTrigger;
    
      </script>
    
    </head>
    <body>
        <form id="form1" runat="server" clientidmode="Static">
        <div>
         <input type="text" />
        <input type="submit" value="Save" id="Save" disabled="disabled" />
        </div>
        </form>
    </body>
    </html>

    21 февраля 2014 г. 8:10
  • Ни кто не поможет?
    21 февраля 2014 г. 13:14
  • Поможем, термение. Мы же не круглыми сутками тут сидим :).  Очень странно, что он у вас не работает. Может JQuery не подключается, у вас путь к нему правильный?

    Сделаем содержимое сообщества лучше, вместе!

    22 февраля 2014 г. 7:22
    Модератор