Quiero deshabilitar mi botón de arranque al hacer clic con Javascript, para evitar un doble clic y evitar problemas de subprocesamiento de DbContext.
<a type="button" class="btn btn-success" id="BackBtn" asp-area="" asp-controller="PageStuff" asp-action="PageStuff" asp-route-culture="@CultureInfo.CurrentCulture.Name">@_loc[Model.BackButton]</a>Esto funciona como se esperaba y oculta el botón:
$("#BackBtn").on("click", function () { document.getElementById("BackBtn").style.display = "none"; });Esto no deshabilita el botón, pero funciona en otra parte de mi aplicación para otros elementos:
$("#BackBtn").on("click", function () { document.getElementById("BackBtn").disabled = true; }); También he intentado usar document.getElementById("BackBtn").unbind("click"); como se menciona aquí .
Y este document.getElementById("BackBtn").prop("disabled", true);
y esto $("#BackBtn").prop("disabled", "disabled");
y este $('BackBtn').prop("disabled", true);
y este document.getElementById("BackBtn").attr("disabled", "disabled");
y este $("#values:BackBtn").attr("disabled", true);
y esto $("#BackBtn").attr("disabled", true);
y este $('BackBtn').attr('readonly', true);
y esto [...document.querySelectorAll('BackBtn')].map(e => e.disabled = true);
y varias otras variaciones.
¿Alguna idea de cómo puedo hacer que el botón se deshabilite al hacer clic? ¿Existe incluso 'deshabilitado' para una etiqueta de anclaje de type="button" ? Estoy empezando a pensar que no existe tal propiedad.
El atributo disabled solo funciona en el button , para la etiqueta de anclaje puede usar pointer-events: none;
$("#BackBtn").on("click", function() { $(this).css('pointer-events', 'none') }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <a type="button" class="btn btn-success" id="BackBtn" asp-area="" asp-controller="PageStuff" asp-action="PageStuff" asp-route-culture="@CultureInfo.CurrentCulture.Name" href="#">Dsiable me</a>