簡體   English   中英

checkbox.checked在onclick函數中始終返回true

[英]checkbox.checked always returning true inside onclick function

我無法解決這個看似簡單的問題。 我的JSP頁面中有一個復選框和一個與之關聯的onclick。 當我單擊復選框時,我需要在此onclick函數中檢查是否已選中還是未選中以知道要采取什么措施。 但是,始終會對其進行檢查! 我不知道為什么。 它幾乎像單擊動作一樣完成並標記為選中,然后再使用此功能。 但是,如果我做一個簡單的HTML示例頁面,它就可以正常工作並為.checked返回正確的值。 我試着刪除“ this”,只是從onclick調用ID復選框,結果相同。這是設置:

<label><input type="checkbox" onclick="selectEntireRange(this);"/> Select ALL Ranges</label>

這是JS:

function selectEntireRange(checkElement)
{
  // if checked - remove check and display table rows normally
  if(checkElement.checked)
  {
    //ALWAYS EXECUTES HERE!
    checkElement.checked = false;
    greyoutAllTableRows(false);
  }
  // if unchecked - mark 'checked' and grey out all table rows
  else
  {
    checkElement.checked = true;
    setAllCheckBoxes(false);
    var selectedRangeField = document.getElementById('effRange');
    selectedRangeField.value = '';
    greyoutAllTableRows(true);
  }
}

任何幫助都是極好的! 謝謝!

PS我不能為此使用jQuery!

怎么樣

onclick="selectEntireRange(this.checked)"

然后更改函數以詢問其是真還是假,0還是1或默認檢查值是多少。 不確定。

由於您設置了checkElement.checked = false;因此出現了問題checkElement.checked = false; 在if / else塊中。 注釋\\刪除該行,它將起作用。 由於單擊時您將其重新設置為false,因此該復選框不會進入已檢查狀態,並且每次用戶單擊它時,由於checkElement.checked = false; ,該復選框不會被選中checkElement.checked = false; 線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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