Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как заполнить текстбоксы двухмерным массивом ??? (https://javascript.ru/forum/dom-window/22922-kak-zapolnit-tekstboksy-dvukhmernym-massivom.html)

pashen 05.11.2011 19:19

как заполнить текстбоксы двухмерным массивом ???
 
Здравствуйте. Использую следующую форму

http://clip2net.com/page/m102504/19140852

Вот ее код:
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <script type="text/javascript" src="1.js"></script>
</head>
<body>
  <form name='form1' id='f1'>
    <table border="1px" style="background-color: #FF8040;">
    <tr>
      <td> x/R </td>
      <td>40</td>
      <td>30</td>
      <td>20</td>
      <td>10</td>
    </tr>
    <tr><td>5</td>
	  <td><input type="text" value="" size="13"/></td>
	  <td><input type="text" value="" size="13"/></td>
      <td><input type="text" value="" size="13"/></td>
      <td><input type="text" value="" size="13"/></td>
    </tr>
    
    <tr><td>4</td>
	  <td><input type="text" value="" size="13"/></td>
	  <td><input type="text" value="" size="13"/></td>
      <td><input type="text" value="" size="13"/></td>
      <td><input type="text" value="" size="13"/></td>
    </tr>
    
    <tr><td>3</td>
	  <td><input type="text" value="" size="13"/></td>
	  <td><input type="text" value="" size="13"/></td>
      <td><input type="text" value="" size="13"/></td>
      <td><input type="text" value="" size="13"/></td>
    </tr>
    
    <tr><td>2</td>
	  <td><input type="text" value="" size="13"/></td>
	  <td><input type="text" value="" size="13"/></td>
      <td><input type="text" value="" size="13"/></td>
      <td><input type="text" value="" size="13"/></td>
    </tr>
   
    </table>
    <br />
    <input  type="button" id="but1" value="заполнить по условию" onclick="feel()"/>
    <input  type="button" id="butmain" value="решить" />
  </form>
</body>
</html>


Вот скрипт 1.js:
function feel(){
 var digests = [[10,20,30,40], [10,20,30,40], [10,20,30,40], [10,20,30,40]];
   var inputs = form1.getElementsByTagName('input');
 for (var key in digests)
   for (var key2 in digests[key]){
    inputs[key2].value = digests[key][key2];
 }
}


результат нажатия на кнопку "заполнить по условию" виден на картинке. Кто нибудь может подсказать как как заполнить все текстбоксы. Я понимаю что в var inputs храниться одномерный массиыв текстбоксов( или дескрипторов на них хз). Суть: как сформировать его двухмерным чтобы заполнить из digests ???

Pavel M. 08.11.2011 15:38

можно в цикле сначала перебрать все tr кроме первой
потом уже input
использовал jQuery для удобства

function feel() {
    var digests = [[10,20,30,40], [10,20,30,40], [10,20,30,40], [10,20,30,40]];
    $('#f1 tr:not(:first-child)').each(function (i, tr) {
        $('input', tr).each(function (j, input) {
            $(input).val(digests[i][j]);
        });
    });
}

pashen 08.11.2011 17:15

спасибо !:)


Часовой пояс GMT +3, время: 15:18.