Jquery prop函数无法禁用按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jquery prop函数无法禁用按钮相关的知识,希望对你有一定的参考价值。

我正在使用JQuery函数“ prop”将按钮的状态更改为禁用一会儿,完成处理后,它将再次使用“ prop”函数来启用按钮。

但是它不起作用,我也不知道为什么。我有其他JS文件,在同一个示例中可以正常工作,只是在这种情况下它是行不通的。

可能会发生,因为函数调用是不同的,在其他文件中,它使用JQuery来检测事件并为按钮调用函数,而不是使用“ href”属性来引用函数。但是我不确定这是否是原因。

按钮html

<a type="button" class="btn btn-sky" id="btnFind" value="" href="javascript:getRegistros()">
   Buscar </a>

和Javascript函数:

function getRegistros() {
if ($("#formReg").valid()) {
  $("#btnFind").html("<i class='fa fa-refresh fa-spin'></i> Buscando");
  $("#btnFind").prop("disabled", true);
  .
  .
  .
   <<looking data>>
  .
  .
  .
  $("#btnFind").html("Buscar");
  $("#btnFind").prop("disabled", false);
 }
} 

任何想法都可以帮助,谢谢。

答案

HTML锚标记没有类型属性。因此,使用按钮的更好方法是使用<button>标记或<input type="button">标记,可以使用jquery prop方法将禁用的属性设置为true / false。但是,如果要使用相同的标签,则需要将其更改为:<a type="button" class="btn btn-sky" id="btnFind" value="" href="#" onclick="getRegistros()"> Buscar </a>您需要使用$("#btnFind").attr("disabled", true);设置属性。

如果要在禁用按钮后执行此操作,则不应调用该函数,您可以按照下面的代码段所示修改代码:

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<meta charset="UTF-8">
<title>demo</title>
<script>
   function getRegistros(el) {
		if(!$(el).hasClass("disabled")){
		  $("#btnFind").html("<i class='fa fa-refresh fa-spin'></i> Buscando");
		  $("#btnFind").attr("disabled", true);
		  $("#btnFind").addClass("disabled");
	  }
	} 
    </script>
    
    </head>
    <body>
       <a type="button" class="btn btn-sky" id="btnFind" value="" href="#" onclick="getRegistros(this)">
   Buscar </a>
</body>
</html>

以上是关于Jquery prop函数无法禁用按钮的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 检查禁用的单选按钮

在窗口调整大小时禁用 jquery 函数

如何禁用在android片段类中按下的后退按钮

如何在提交后禁用输入字段

片段交易后如何禁用按钮?

jquery根据状态数组禁用提交按钮