отключить кнопку Проблема в JQuery - PullRequest
0 голосов
/ 14 декабря 2009

У меня есть форма, которая вызывает отправку функции сценария Java, как показано ниже:

<form:form commandName="achievment" method="post" id="achievmentForm"  enctype="multipart/form-data" onsubmit="disableButtons(this);" cssClass="validatable">

<input id="button1" type="submit" class="button" name="add" onclick="bCancel=false" value="إضافة" />

</form:form>

, а код js -

<script type="text/javascript">
<!--

function disableButtons(form){
 if(jQuery(form).valid()){
  jQuery('input:button').removeClass('button');
  jQuery('input:button').addClass('grayButton');
  jQuery('input:submit').removeClass('button');
  jQuery('input:submit').addClass('grayButton');
  jQuery('input:reset').removeClass('button');
  jQuery('input:reset').addClass('grayButton');
  jQuery('input:submit').attr('disabled', true);

 }

}
-->
</script>

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

1 Ответ

1 голос
/ 14 декабря 2009

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

setTimeout(function() { 
    $('button').attr('disabled', true); 
}, 100); // Disable after 100 milliseconds.

Тем не менее и не имеет отношения к вашей реальной проблеме: знаете ли вы, что вы можете просто стилизовать кнопки disabled отдельно? Кажется, вы все время добавляете и удаляете классы. В этом нет необходимости. Просто дайте им один и тот же класс button (или около того) и используйте селектор атрибута [disabled]:

.button {
    /* Define here style of default button. */
}

.button[disabled] {
    /* Define here style of disabled button. */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...