Кнопка отправки не работает после взаимодействия с jQuery - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть форма, куда я загружаю файлы на сервер.Все работало как нужно, пока я не добавил логику проверки для кнопки отправки (отключите ее, пока файл не выбран, и включите ее после выбора).Теперь моя отправка больше не запускает действие POST.Нужно ли явно добавлять onclick слушатель?Я предполагаю, что jQuery изменил некоторые свойства, которые не позволяют обработчику щелчков работать по умолчанию?

<form name="uploadFile" method="POST" action="uploadFile" enctype="multipart/form-data">
  <input type="file" name="file" id="file"><br />
  <input type="submit" name="submit" id="importkey" value="Import Key" />
</form>
function setSubmitBtnState() {
  var sb = jQuery('#importkey');
  var dclasses = 'ui-button-disabled ui-state-disabled';

  if (jQuery('#file').val() == '') {
    sb.attr('disabled', 'disabled');
    sb.addClass(dclasses);
  } else {
    sb.removeAttr('disabled');
    sb.removeClass(dclasses);
  }
}

Chrome Debugger показывает: Состояние кнопки отключено

<input type="submit" name="submit" id="importkey" value="Import Key" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-disabled ui-state-disabled" role="button" aria-disabled="false" disabled="disabled">

Состояние кнопки включено

<input type="submit" name="submit" id="importkey" value="Import Key" class="ui-button ui-widget ui-state-default ui-corner-all" role="button" aria-disabled="false">

Итак, класс удален.

Этот код исправил проблему.

jQuery("#importkey").button().click(function() {
});

1 Ответ

0 голосов
/ 21 февраля 2019

Вам необходимо выполнить правильную проверку, правильно позвонив по номеру setSubmitBtnState().Попробуйте это: -

$('form[name="uploadFile"]').submit(function(e){
   return setSubmitBtnState();
});

function setSubmitBtnState() {
 var isValid = true;
 var sb = jQuery('#importkey');
 var dclasses = 'ui-button-disabled ui-state-disabled';

if (jQuery('#file').val() == '') {
   isValid = false;
  sb.attr('disabled', 'disabled');
  sb.addClass(dclasses);

} else {
   isValid = true;
  sb.removeAttr('disabled');
  sb.removeClass(dclasses);
 }
 return isValid;
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...