簡體   English   中英

用於根據字符串開頭選擇復選框的按鈕-Javascript

[英]Button to select check boxes based on start of string - Javascript

我有一個表格,其中列出了用戶,每個用戶的姓名下方都有復選框。 我想為每個用戶提供一個按鈕,以選中所有用戶復選框。

這是動態創建的按鈕代碼和動態創建的復選框。 包含的函數具有表單名稱,復選框ID的開頭和復選框值作為參數。

<input type="button" onclick="SetAllCheckBoxes('form1', '<? echo $row['ID']; ?>_', true);" value="Check All">

<input name="<? echo $userID?>_<? echo $checkboxNumber ?>" type="checkbox" id="<? echo $userID?>_<? echo $checkboxNumber  ?>" value="1" />

我需要onclick函數,該函數將在單擊時單擊所有所需的用戶復選框。 我想我需要在某處選擇某種形式的正則表達式,例如:所有以12_或15_開頭的復選框

如果為按鈕指定的名稱是復選框名稱中用戶ID的一部分,則可以執行以下操作:

<button type="button" name="userFoo" onclick="setCheckboxes(this)" ...>Check 'em</button>

然后在函數中:

function setCheckboxes(element) {
  var re = new RegExp('^' + element.name + '_');
  var controls = element.form.elements;

  for (var i=0, iLen=controls.length; i<iLen; i++) {
    if (re.test(controls[i].name)) {
      controls[i].checked = true;
    }
  }
}

一些測試HTML:

<form>
  <button name="foo" type="button" onclick="setCheckboxes(this)">Check 'em</button>
  <input type="checkbox" name="foo_1">1
  <input type="checkbox" name="foo_2">2
  <input type="checkbox" name="foo_3">3
  <br>
  <button name="bar" type="button" onclick="setCheckboxes(this)">Check 'em</button>
  <input type="checkbox" name="bar_1">1
  <input type="checkbox" name="bar_2">2
  <input type="checkbox" name="bar_3">3
</form>

如果要在作為用戶ID的每個復選框上放置一個類,則該函數可能是:

function setCheckboxes(element) {
  var controls = element.form.querySelectorAll('input.' + element.name);
  for (var i=0, iLen=controls.length; i<iLen; i++) {
    controls[i].checked = true;
  }
}

或在現代瀏覽器(而不是IE8)中:

function setCheckboxes(element) {
  var controls = element.form.querySelectorAll('input.' + element.name);
  [].forEach.call(controls, function(el){el.checked = true});
}

暫無
暫無

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

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