Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Выделить все ЧЕКБОКСЫ находящие в разных слоях


Автор: Гриша 14.4.2006, 02:06
Здравствуйте. Подскажите пожалуйста решние.
Есть на странице ЧЕКБОКСЫ, я хочу сделать так что бы например при нажатии на на ссылку "Выделить все", все ЧЕКБОКСЫ выделялись.
Проблемы в том, что ЧЕКБОКСЫ находятся в разных ячеках таблицы, получается, что я немогу их вписать в один слой.
Вот пример приведенный Sardar'ом, возможно ли его переделать под описанные выше условия (имя у чекбоксов одинаковое name="chekbox[]"):

http://forum.vingrad.ru/index.php?showtopic=47535#

Код

<script type="text/javascript">
<!--

/**
* Селецтируем чекбоксы в контейнере.
* @param  cont  - ссылка на контейнер
* @param name   - опционально, выбрать чекбоксы с определённым именем
*/
function selectAll(cont, name) {
  var inpts=cont.getElementsByTagName("INPUT");
  for(var i=0; i<inpts.length; i++)
    if(inpts[i].type=="checkbox" && (name==null||inpts[i].name==name)) inpts[i].checked=true; 
}
//-->
</script>

<div id="chks">
<input type="checkbox" name="selected_firms[]" value="1">
<input type="checkbox" name="selected_firms[]" value="2">
<input type="checkbox" name="group2_firms[]" value="3">
<input type="checkbox" name="group2_firms[]" value="4">
<input type="checkbox" name="selected_firms[]" value="5"><br>
<button onClick="selectAll(this.parentNode)">Select All</button>
<button onClick="selectAll(this.parentNode, 'group2_firms[]')">Select group 2</button>
</div>

Автор: 12345c 14.4.2006, 12:10
Код
<button onClick="selectAll('chekbox[]')">Select group </button>



Код
function selectAll(name) {
  var inpts=document.getElementsByTagName("INPUT");
  for(var i=0; i<inpts.length; i++)
    if(inpts[i].type=="checkbox" && inpts[i].name==name) inpts[i].checked=true; 
}

Добавлено @ 12:13
Или
Код

function selectAll(name) {
  var inpts=document.getElementsByName(name);
  for(var i=0; i<inpts.length; i++)
    inpts[i].checked=true; 
}

Автор: maestro2k 5.3.2007, 20:04
Чекбоксы с разными именами нехочет чекать.

Автор: Sardar 5.3.2007, 20:25
Цитата(maestro2k @  5.3.2007,  19:04 Найти цитируемый пост)
Чекбоксы с разными именами нехочет чекать. 

Код
function selectAll(names) {
  var inpts=document.getElementsByTagName("INPUT");
  for(var i=0; i<inpts.length; i++)
    if(inpts[i].type=="checkbox" && names['~' + inpts[i].name]) inpts[i].checked=true;
}

//selectAll({'~chekbox[]':1, '~other name':1});
//тильда не нужна если не использовать "зарезервированных" ключей, типа 'toString'

Автор: maestro2k 5.3.2007, 21:03
блин всеравно непашет. вот код
Код

<script type="text/JavaScript">
function selectAll() {
  var inpts=document.getElementsByTagName("INPUT");
  for(var i=0; i<inpts.length; i++)
    if(inpts[i].type=="checkbox" && names['~' + inpts[i].name]) inpts[i].checked=true;
}
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>
<table width="389" height="134" border="0">
  <tr>
    <td rowspan="2"><input name="checkbox3" type="checkbox" onClick="selectAll()" value="checkbox"></td>
    <td><input type="checkbox" name="~checkbox" value="checkbox"></td>
  </tr>
  <tr>
    <td><input type="checkbox" name="~checkbox2" value="checkbox"></td>
  </tr>
</table>
</body>
</html>

Автор: 12345c 5.3.2007, 21:17
Код
if(inpts[i].type=="checkbox"
  && inpts[i].name.search(/~checkbox\d*/)==0) inpts[i].checked=true;

Автор: maestro2k 5.3.2007, 21:18
всем спасибо. Разобрался уже. Вот:
Код

function selectAll() {
  var inpts=document.getElementsByTagName("INPUT");
  for(var i=0; i<inpts.length; i++)
    if(inpts[i].type=="checkbox") inpts[i].checked=true;
}

Автор: AKS 5.3.2007, 21:52
Код

for (var i = 0; i < inpts.length;  i++)
    inpts[i].checked = inpts[i].type == 'checkbox'; // ;)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)