Отключить кнопку после однократного нажатия на кнопку - PullRequest
3 голосов
/ 19 февраля 2010

В моем приложении мне нужно отключить кнопку, когда она нажата, чтобы пользователь не нажимал более одного раза. Приложение - это MVC ASP.NET. Я сделал это в обычном приложении asp.net. Я пробовал ниже строки кода, но он не работает

спасибо заранее

изм Как я могу реализовать это с помощью JavaScript?

Ответы [ 9 ]

7 голосов
/ 18 ноября 2010

Я обнаружил, что в IE8 (я не уверен насчет других версий IE), что вы не можете отправить форму, если отключите кнопку в событии click.Поэтому я придумала альтернативное решение.Скройте нажатую кнопку и поместите новую отключенную кнопку на ее место.Вот код:

$().ready(function() {
  $("someButtonSelector").click(function () {
    $(this).hide();
    $(this).after('<input type="button" disabled="disabled" value="' + $(this).val() + '" />');
    return true;
  });
});
3 голосов
/ 19 ноября 2010

Вы можете попробовать это:

onclick="if (this.getAttribute('clicked') == '1') { return false; } else { this.setAttribute('clicked', '1'); }"

Это ничего не отключит, просто предотвратит событие щелчка после первого щелчка.

2 голосов
/ 19 февраля 2010
<button type="button" onclick="this.disabled = 'disabled';">Click Me!</button>

Хотя веб-элемент управления Button отображается как отправка:

<input type="submit" onclick="this.disabled = 'disabled';" value="Submit" />
0 голосов
/ 25 февраля 2014

Это будет работать:

OnClientClick="if (this.getAttribute('clicked') == '1') {
    return false; 
} else { 
    this.setAttribute('clicked', '1'); 
}"
0 голосов
/ 03 декабря 2013
var but = 1;
function f() {
    if(but == 1) {
        alert("Hello World!");
        but = 0;
    }
}

Надеюсь, это поможет.

0 голосов
/ 26 июля 2013

Вот одна из моих кнопок, которая вызывает действие MVC, а затем отключает себя:

<button  class="btn blue pull-right" onclick="location.href='@Url.Action("Index", "GetData", new { page = Model.PageNumber + 1, sortOrder = Model.CurrentSort, fromDate = Model.FromDateParam, toDate = Model.ToDateParam, terminatingpoint = Model.TerminationPointParam, SurecallNo = Model.SurecallNoParm, CallerID = Model.CallerIDParm, outcome = Model.OutcomeParm, pagesize = Model.PageSize })';this.disabled = 'disabled'" >Next ></button>
0 голосов
/ 10 июля 2013

Это также хорошо работает, и это легко понять:

var myButton = $('input:submit');
var waitMessage = 'wait please...';
myButton.click(function() {
    if (bottone.val() == waitMessage) {
        return false;
    };
    myButton.val(waitMessage);
    console.log('iClicked'); // this line is for testing only, it can be removed.
});
0 голосов
/ 25 апреля 2013

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

    $('input_selector').click(function () {
      $(this).hide(200/whatever);
      $(this).before('<p>Waiting for server to respond?!?</p><br/>')
    });

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

0 голосов
/ 19 февраля 2010

@ prakash Вы использовали jQuery, чтобы отключить или даже скрыть кнопку?

Если идентификатор вашей кнопки называется «btnClickMe», то следующий jQuery выполнит эту работу.

$("#btnClickMe").hide();

Вы также можете установить атрибут disbaled с помощью jQuery;

$("#btnClickMe").attr("disabled","disabled");

Приведенный выше не протестирован, но должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...