我有一個表單,我想要通過選擇複選框來禁用或隱藏兩個輸入字段。我可以很容易地做到這一點當document.ready,但因爲我附加這些領域的功能不生效。我如何使用onClick調用函數?如何從複選框onclick或onchange調用函數
這是我工作的代碼
$(function() {
$(checkbox).click(function() {
if ($('#checkbox').is(':checked')) {
$('#appTimes').find('input').attr('disabled', true);
} else {
$('#appTimes').find('input').removeAttr('disabled');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="appTimes" id="appTimes">
<input name="stopTime1" type="text" id="stopTime1" />
<input name="stopTime12" type="text" id="stopTime12" />
</div>
<input name="checkbox" type="checkbox" id="checkbox" />
而這正是我試圖做的事:
function boxDisable(e) {
$(this).click(function() {
if ($(this).is(':checked')) {
$(e).find('input').attr('disabled', true);
} else {
$(e).find('input').removeAttr('disabled');
}
});
}
<div class="appTimes" id="appTimes">
<input name="stopTime1" type="text" id="stopTime1" />
<input name="stopTime12" type="text" id="stopTime12" />
</div>
<input name="checkbox" onclick="boxdisable(appTimes);" type="checkbox" id="checkbox" />
---編輯--------------- 讓我重新定義:我的代碼正在使用。 附加創建多個上述代碼的實例。由於附加量是無限的,我無法定義複選框$('#id')
,因爲可能有數百個像$('#id1')
,$('#id2')
..等我需要一個函數,避免提及確切的元素ID的,被稱爲onClick由複選框並影響前額div,即也追加。
我對你試圖在這裏做什麼很困惑,該變種'沒有定義appTimes' ......也許你的意思是'的onclick =「boxdisable(」。appTimes 「);「'? – 2015-02-06 18:37:37
不需要if/else,你使用prop來設置和取消設置disabled,而不是attr/removeAttr,它需要一個布爾型的$(e).find('input')。prop('disabled',$ something.is ':檢查')); ' – Popnoodles 2015-02-06 19:22:21
@Popnoodles謝謝 – 2015-02-06 19:31:14