好吧,我試圖根據複選框選擇顯示2個表單域。這2個表單域是必需的。所以基本上,當選擇複選框時,我需要顯示字段並讓他們需要。否則,他們隱藏,因此不是必需的。我有show hide sorta工作。它在取消選擇時不可靠隱藏(選擇組中的另一個複選框)。當他們被隱藏時,他們仍然是必需的,所以我得到一個不錯的錯誤...顯示/隱藏2(必填)基於複選框的表單域
我卡住了。任何人有建議。我還是很新的。提前致謝。下面是我有如下:
<label for="nothing">
Test Method<br/>
<label>
<input type="checkbox" class="testmethod" id="kickback" name="kickback" value="yes" onclick="javascript:yesnoCheck();" tabindex="5" <?= ($settings['kickback'] == 'yes' ? 'checked = "checked"' : '') ?>>
Kickback
</label>
<label>
<input type="checkbox" class="testmethod" id="manual" name="manual" value="yes" onclick="javascript:yesnoCheck();" tabindex="5" <?= ($settings['manual'] == 'yes' ? 'checked = "checked"' : '') ?>>
Manual
</label>
<label>
<input type="checkbox" class="testmethod" id="beastmode" name="beastmode" value="yes" onclick="javascript:yesnoCheck();" tabindex="5" <?= ($settings['beastmode'] == 'yes' ? 'checked = "checked"' : '') ?>>
Beast Mode
</label>
</label>
<label for="my-text-field" id="mytextfield" style="visibility:hidden">
My Text Field <em> <small>*Required*</small></em>
<input type="text" name="mytextfield" value="<?= $settings['mytextfield'] ?>" tabindex="6" required/>
</label>
<label for="my-number-field" id="mynumberfield" style="visibility:hidden">
Number of Images <em> <small>*Required*</small></em>
<input type="number" name="mynumberfield" value="<?= $settings['mynumberfield'] ?>" tabindex="7" required/>
</label>
這是我的JS
$("input.testmethod").click(function() {
$('input:checkbox[class="' + $(this).attr('class') + '"]').prop('checked', false);
$(this).prop('checked', true);
});
function yesnoCheck() {
if (document.getElementById('beastmode').checked)
{
document.getElementById('mytextfield').style.visibility = 'visible'
document.getElementById('mynumberfield').style.visibility = 'visible';
}
else
{
document.getElementById('mytextfield').style.visibility = 'hidden';
document.getElementById('mynumberfield').style.visibility = 'hidden';
}
}
複選框只是 「激活」 這些領域。所以如果你選擇手動的方法,不需要這兩個隱藏的字段。而如果選擇beastmode,則需要這些字段中的信息。對不起,沒有更清楚。謝謝! – Muttface