[英]Trouble enabling/disabling submit button according to checkbox (JavaScript)
我試圖根據是否選中確認復選框來啟用/禁用我的提交按鈕。 簡化版本在jsfiddle上正常工作,但是由於某種原因,它在我的實際代碼中不起作用。 這是原始代碼:
<div class="form-group">
<div class="col-md-offset-3 col-md-6">
<label>
<input type="checkbox" id="confirm">The above information is correct.
</label>
</div>
</div>
<div class="form-group" style="float:right">
<input type="submit" class="btn btn-primary" id="sbmBtn" value="Submit" disabled>
<input type="reset" class="btn btn-default" id="clrBtn" value="Clear">
</div>
我使用了與正常工作的jsfiddle代碼相同的方法(當然具有正確的ID),但似乎無效。.我什至將粘貼的jsfiddle代碼復制到編輯器中,保存並打開頁面,它也不起作用。
任何人對這個問題有什么想法?
編輯:這也是javascript:
var checker = document.getElementById('confirm');
var sbm = document.getElementById('sbmBtn');
checker.onchange = function () {
if(this.checked) {
sbm.disabled = false;
}
else {
sbm.disabled = true;
}
}
編輯2:這是正確的鏈接-> http://jsfiddle.net/94Dur/1/
當從瀏覽器中的文件運行代碼時,該代碼應該可以工作。
我懷疑您在頁面的<body>
之前添加了JavaScript。 這意味着選擇器document.getElementById('confirm')
在加載頁面之前運行,這意味着它將找不到該元素,這又將導致onchange
-function未添加到該元素。
您應該嘗試這樣做:
window.onload = function() {
var checker = document.getElementById('confirm');
var sbm = document.getElementById('sbmBtn');
checker.onchange = function () {
if(this.checked) {
sbm.disabled = false;
}
else {
sbm.disabled = true;
}
}
}
這將確保在加載頁面內容之前不運行JavaScript。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.