道具('禁用',假);不管用

时间:2017-10-10 20:21:05

标签: javascript jquery prop

我想制作一个按钮,当复选框为false时,该按钮将被禁用。但prop('disabled', false);无效。

$(function() {
    $(this).click(function() {
        if ($('#аgree').prop(':checked')) {
            $('#button').prop('disabled', false);
        } else {
            $('#button').prop('disabled', true);
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="text-center">З правилами анкетування ознайомлений(а) і згоден(на) @Html.CheckBox("Agree", false, new { id = "agree" }) </p>
<p class="text-center"><input type="button" id="button" disabled="disabled" value="Пройти анкетування" onclick="location.href='@Url.Action("Form")'" /></p>

4 个答案:

答案 0 :(得分:2)

在您的代码中,this指的是DOM。

将其更改为

$("#agree").change(function() {
    if ($(this).is(':checked')) {
        $('#button').prop('disabled', false);
    } else {
        $('#button').prop('disabled', true);
    }
});

在事件处理程序中,this指的是触发change事件的元素。

或简单地说:

$("#agree").click(function() {
    $('#button').prop('disabled', !$(this).is(':checked'));
});

答案 1 :(得分:1)

您可以尝试删除该属性。

$('#button').removeAttr('disabled')

答案 2 :(得分:0)

检查是否已使用.is(":checked")选中该复选框, 另外,请在复选框上听取更改事件。

下面是一些修改后的代码(以使其在此处工作)

&#13;
&#13;
$(function() {
    $('#agree').change(function() {
        if ($(this).is(':checked')) {
            $('#button').prop('disabled', false);
        } else {
            $('#button').prop('disabled', true);
        }
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="text-center">З правилами анкетування ознайомлений(а) і згоден(на) <input type=checkbox id=agree> </p>
<p class="text-center"><input type="button" id="button" disabled="disabled" value="Пройти анкетування" onclick="location.href='@Url.Action("Form")'" /></p>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

要禁用按钮,您可以使用:

$('#button').attr('disabled', 'disabled');

要激活按钮,您可以使用:

$('#button').attr('disabled', '');