2014-01-10 3 views
2

Для сайта Drupal я разработал довольно простой модуль, чтобы пользователи не нажимали несколько раз кнопку отправки. Когда кнопка отправки нажата, она заменяется небольшим сообщением, чтобы иметь некоторое терпение.Safari игнорирует внесение изменений в событие onclick

Проблема во всех браузерах, кажется, работает отлично, за исключением Safari.

$("input[id^='edit-submit']").click(function(e){ 
     var message = Drupal.t('Please wait...'); 
     $(this).hide(); 
     $('<span>' + message + '</span>').insertAfter(this); 
    }); 

Когда я смотрю в отладчике я вижу атрибут не появляется стиль = «дисплей: нет;» но Safari, похоже, игнорирует это. Когда я вручную (через инструменты разработчика) добавляю дисплей: ни одна кнопка не исчезает.

Я не знаю, это jQuery doesn't run in Safari on form submit связано с тем, что, когда я добавляю console.log() между телом функции click, он выполняется один раз (значение $ (this) также указывает на правильный элемент), но оно не " t реагировать на любые изменения на этой кнопке.

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

Я пробовал поиск по ключевым словам, но я не смог найти документацию, описывающую это поведение в Safari.

EDIT: Я также попытался удалить (и отсоединить) кнопку onclick, которая заставляет кнопку исчезать, но форма больше не отправляется.

ответ

1

Попробуйте использовать:

.css('display', 'none'); 
+0

, к сожалению, это не сработало. Это также примерно то же самое, что и hide(). Соответствующие элементы будут немедленно скрыты без анимации. Это примерно эквивалентно вызову .css («display», «none»), за исключением того, что значение свойства display сохранен в кеше данных jQuery "-> http://api.jquery.com/hide/ –

+0

Попробуйте .detach(), чтобы временно удалить элемент из DOM. –

+0

Thx для размышлений в одиночку - но с момента, когда я отсоединяю() (то же самое с удалением) кнопку отправки, форма больше не отправляется. Я собираюсь отредактировать свой оригинальный вопрос, чтобы добавить эту информацию. –

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