1. ホーム
  2. jquery

[解決済み] jQueryを使用してセレクトフィールドを無効化/有効化するには?

2022-04-13 19:43:25

質問

以下のようなフォームにオプションを作成したい。

[] I would like to order a [selectbox with pizza] pizza

チェックボックスがチェックされたときだけ有効で、チェックされていないときは無効になる。

こんなコードを思いつきました。

<form>
<input type="checkbox" id="pizza" name="pizza" value="yes"> <label for="pizza">
I would like to order a</label>
<select name="pizza_kind">
    <option>(choose one)</option>
    <option value="margaritha">Margaritha</option>
    <option value="hawai">Hawai</option>
</select>
pizza.
</form>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
</script>
<script>
var update_pizza = function () {
    if ($("#pizza").is(":checked")) {
        $("#pizza_kind").removeAttr("disabled");
    }
    else {
        $("#pizza_kind").prop('disabled', 'disabled');
    }
};

$(update_pizza);
$("#pizza").change(update_pizza);
</script>

disabled 属性を設定する方法をいろいろと試してみました。 .prop() , .attr() および .disabled= . しかし、何も起こりません。を適用すると <input type="checkbox"> ではなく <select> であれば、コードは完全に動作します。

を無効化/有効化する方法 <select> jQueryを使用していますか?

解決方法は?

このようなコードを使用したい。

<form>
  <input type="checkbox" id="pizza" name="pizza" value="yes">
  <label for="pizza">I would like to order a</label>
  <select id="pizza_kind" name="pizza_kind">
    <option>(choose one)</option>
    <option value="margaritha">Margaritha</option>
    <option value="hawai">Hawai</option>
  </select>
  pizza.
</form>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
  var update_pizza = function () {
    if ($("#pizza").is(":checked")) {
        $('#pizza_kind').prop('disabled', false);
    }
    else {
        $('#pizza_kind').prop('disabled', 'disabled');
    }
  };
  $(update_pizza);
  $("#pizza").change(update_pizza);
</script>

以下、作業中です。