重力フォームの事前入力フォームによって生成されたこの html があります。
<ul id="input_4_17" class="gfield_radio">
<li class="gchoice_17_0">
<input type="radio" tabindex="1" id="choice_17_0" name="input_17">
<label for="choice_17_0">
<img class="stock instock" id="gchoice_17_0">
</label>
</li>
<li class="gchoice_17_1">
<input type="radio" tabindex="1" id="choice_17_1" name="input_17">
<label for="choice_17_1">
<img class="stock outofstock" id="gchoice_17_1">
</label>
</li>
<li class="gchoice_17_2">
<input type="radio" tabindex="1" id="choice_17_2" name="input_17">
<label for="choice_17_2">
<img class="stock outofstock" id="gchoice_17_2">
</label>
</li>
</ul>
img 要素のクラスである在庫状況に基づいて入力を無効にしようとしています。このクラスを入力に入れることができないため、この JavaScript を使用して、画像のクラスに基づいて入力を無効にし、入力を無効にしています。
$(document).ready(function () {
if ($('img#gchoice_17_0').hasClass('outofstock')) {
$('input#choice_17_0').attr("disabled", "disabled").prop("checked", false);
}
if ($('img#gchoice_17_1').hasClass('outofstock')) {
$('#choice_17_1').attr("disabled", "disabled").prop("checked", false);
}
if ($('img#gchoice_17_1').hasClass('outofstock')) {
$('#choice_17_1').attr("disabled", "disabled").prop("checked", false);
}
});
これは機能しますが、これが最善の方法ではないことはわかっています。このコードを試していますが、うまくいきません。
$(document).ready(function () {
if ($('img').hasClass('outofstock')) {
var getIde = $(this).attr("id");
$('input#' + getIde).attr("disabled", "disabled").prop("checked", false);
}
});
なぜそれが機能しないのか、誰にもアイデアがありますか?