簡體   English   中英

無法根據復選框啟用/禁用提交按鈕(JavaScript)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM