簡體   English   中英

選中復選框時啟用下拉菜單

[英]Enabling dropdown when checkbox checked

我一直在尋找答案,但是一切似乎都只能滿足我所需的一半,這就是我設法開始的原因。 我想做的是選中一個復選框時啟用一個下拉菜單,否則將其禁用。 我不太確定如何在標記中調用該函數,但是我不確定該函數是否正常工作。

function .onCheckChange() {
    if ($("#partoption2").is(':checked')) {
        $("#parttwoqty").attr('disabled', 'disabled');
        $("#partoption2").val("TRUE");
    } else {
        $("#parttwoqty").attr('disabled');
        $("#partoption2").val("FALSE");
    }
}

這是小提琴: http : //jsfiddle.net/xjn3Q/1/

謝謝!

該函數正確,但名稱不正確。 另外,如果您使用的是jQuery,則不應直接在html標簽上使用onchange屬性。

在您的擺弄中,在包括jQuery庫(1.8+)之后,將JS更改為可以使用。 要考慮的另一件事是使用prop而不是attr

$(function(){
  $("#partoption2").on('change',function() {
    if (!$(this).is(':checked')) {
      $("#parttwoqty").prop('disabled', 'disabled');
    } else {
      $("#parttwoqty").prop('disabled', false);
    }
  });
});

也許您需要先禁用選擇,以使其顯示為禁用,直到選中該復選框,然后添加$("#parttwoqty").prop('disabled', 'disabled'); $(function(){行之后執行此操作。

您的代碼有多個問題,但我只會解決使此示例正常工作的問題。

首先,在您的jsFiddle中,您正在使用jQuery,但是從不加載它(在左側)。

其次,由於您使用的是jQuery,為什么不使用jQuery點擊處理程序,如下所示:

$('#partoption2').click(function () {
    if ($("#partoption2").is(':checked')) {
        $("#parttwoqty").attr('disabled', 'disabled');
        $("#partoption2").val("TRUE");
    } else {
        $("#parttwoqty").attr('disabled', false);
        $("#partoption2").val("FALSE");
    }
});

我已經修改了您的小提琴,您可以在這里查看結果http://jsfiddle.net/xjn3Q/9/

var $checkBox = $('#partoption2'),
$select = $('#parttwoqty');


$checkBox.on('change',function(e){
if ($(this).is(':checked')){
    $select.removeAttr('disabled');
}else{
   $select.attr('disabled','disabled');
}

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM