在JQuery中删除单个单词属性

时间:2018-09-05 18:12:28

标签: javascript jquery html bootstrap-4

我的html网页上有一个Bootstrap 4按钮。 w3schools(https://www.w3schools.com/bootstrap4/bootstrap_buttons.asp)表示,通过以下方式添加按钮会使其处于禁用状态,即不可点击。

<button type="button" class="btn btn-primary" disabled>Disabled Primary</button>

我想设置按钮的表单,以便在单击按钮时将其禁用。这是我到目前为止的相关部分:

 $(document).on('submit', '.Validate', function(e){
        e.preventDefault();
        var form = $( this );
        form.attr('disabled')
        $.ajax({
            type:'POST',
            url:'/workflowautomator/setready/',
            data:{
                name: (form.find('input[class="name"]')).val()
            },
            success:function(){
                form.removeAttr('disabled')
            }
        });
 });

但是,我看到的.attr用法更像

$( "#greatphoto" ).attr( "title", "Photo by Kelly Clark" );

在该属性中有一个名称和一个值,而不是在上方,而在按钮开始标记中单独有单词“ disabled”。 “禁用”一词实际上不是适当的属性吗? w3schools就这样描述它。我如何使这段代码起作用?

1 个答案:

答案 0 :(得分:1)

这不是您需要使用的正确选项:

form.attr('disabled')

替换为:

form.find(".btn-primary").addClass("btn-disabled").prop("disabled", true);

您必须使用.prop()添加和删除属性属性。在以下代码段中进行检查:

$(function () {
  $("button").click(function () {
    $(this).addClass("btn-disabled").prop("disabled", true);
  });
});
body {padding: 50px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<button class="btn btn-primary">Disable Me</button>