Что является стандартным способом отображения ошибок в jQuery Mobile - PullRequest
2 голосов
/ 03 апреля 2012

Я создал простой знак в форме POST, который отправляется через AJAX (конфигурация по умолчанию, я ничего не менял).Когда пользователь отправляет неверные данные, загружается следующая страница:

<div data-role="page" id="main_mobile_page">

    <div data-role="header" data-id="fixed_header" data-position="fixed">
        ...
    </div>

    <div data-role="content">
        ...display:none DIV with the text of error...
        ...sign in form...
    </div>

    <div data-role="footer" data-id="fixed_footer" data-position="fixed">
        ...
    </div>

</div>

Какой стандартный и самый простой способ показать всплывающее окно с ошибкой.Я пробовал несколько реализаций, включая собственные диалоговые окна jQuery Mobile (я создал отдельную «страницу» с текстом ошибки и перенесен на него) и плагины, такие как SimpleDialog.У всех реализаций есть проблемы, обычные проблемы:

  • происходит что-то случайное, когда вы нажимаете кнопку "ОК" в диалоговом окне (т.е. data-rel = "back" не работаетЧто ж).Может быть, это потому, что форма была отправлена ​​через POST.

  • , когда jQuery Mobile загружает страницы через AJAX, иногда она скрывает старую, а не очищает ее, и я получаю HTML с несколькими id =страницы "main_mobile_page" и, следовательно, не могут правильно найти мой ящик с ошибками.

Имеет ли jQuery Mobile некоторый эквивалент функции alert () JS для простого отображения ошибки, без чрезмерного усложнения иобрабатываете это как отдельную загрузку страницы?Если нет, то каков стандартный способ реализации такого всплывающего окна с ошибкой?В конечном итоге я хочу скомпилировать это с PhoneGap и надеюсь, что он возьмет этот «alert-s» и преобразует его в собственные «всплывающие окна с ошибками» конкретной модели телефона.

1 Ответ

3 голосов
/ 04 апреля 2012

почему вы не используете уведомления о разрыве телефонной связи?

navigator.notification.alert(
  'Please try again', // BODY COPY
  alertConfirm, // CALL BACK FUNCTION
  'Oops something went wrong!', // TITLE
  'OK' // BUTTON TEXT
);

или

navigator.notification.confirm(
  'Please try again', // BODY COPY
  alertConfirm, // CALL BACK FUNCTION
  'Oops something went wrong!', // TITLE
  'LAME, TRY AGAIN' // BUTTON TEXT
);

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

function alertConfirm(b){
  if(b == 1){
   // BUTTON 1 WAS CLICKED
  }
  else {
   // BUTTON 2 WAS CLICKED
  }
}
...