Проблемы Добавление строк при отправке с Javascript - PullRequest
1 голос
/ 12 сентября 2010

Я пытаюсь создать форму, в которой при нажатии кнопки «+» создается новая строка из четырех пустых полей ввода. Теперь, когда нажата «+», она копирует строку (и все, что в ней напечатано) одинаково.

Как мне создать пустую строку? Как я могу иметь только одну кнопку «+» вместо новой в каждом новом столбце?

Вот страница: http://myvirtualltciguy.com/Client_Intake_Meds.html

Ответы [ 2 ]

0 голосов
/ 12 сентября 2010

Добавление новой строки с помощью jQuery (ручное манипулирование DOM, как это вручную, мучительно утомительно):

<table id="data">
  <tr>
    <td>
      <label>
        Foo
        <input name="foo[]" />
      </label>
    </td>
    <td>
      <label>
        Bar
        <input name="bar[]" />
      </label>
    </td>
    <td>
      <label>
        Baz
        <input name="baz[]" />
      </label>
    </td>
    <td>
      <label>
        Qux
        <input name="qux[]" />
      </label>
      <button id="add">+</button>
    </td>
  </tr>
</table>

$(function() { // will run after the DOM tree loaded
    $('#add').click(function() {
        $('#add').detach();
        $('#data tr:last').clone().val(null).insertAfter($('#data tr:last'));
        $('#add').append('#data td:last');
    });
});

Использование имен ввода, таких как foo[], прекрасно работает с PHP, который будет возвращать все входы в этом столбце в массиве с именем foo. Если вы не хотите этого, вы должны изменить имена полей в новой строке вручную. Кроме того, если вы хотите доступный сайт, у вас должен быть запасной вариант без javascript для добавления новых строк ... все становится сложнее.

0 голосов
/ 12 сентября 2010

Вы можете попробовать это:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>
      Meds - Test
    </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="description" content="My Virtual LTCI Guy">
    <meta name="keywords" content="My Virtual LTCI Guy">
    <meta name="author" content="My Virtual LTCI Guy">
    <link rel="stylesheet" href="http://myvirtualltciguy.com/css/ltci_style.css" type="text/css" media="screen" charset="utf-8">
    <script type="text/JavaScript">
function addOneRow(){   
    //table
    var table = document.getElementById('mytable');
    //body of the table
    var tabBody = table.getElementsByTagName("TBODY").item(0);
    var numberRow = table.rows.length;
    //***********Row
    var row = table.insertRow(-1); // appends to the end
    //columns
    var column = row.insertCell(-1);
    column.id = 'column_' + numberRow;
    column.innerHTML = '<input name="button" type="button" value="+" onclick="addOneRow()" style="height:20px; font-size:11px;">';

    column = row.insertCell(-1);
    column.innerHTML = '<input type="text" name="textfield_a" style="width:105px;">';       

    column = row.insertCell(-1);
    column.innerHTML = '<input type="text" name="textfield_b" style="width:105px;">';   

    column = row.insertCell(-1);
    column.innerHTML = '<input type="text" name="textfield_c" style="width:105px;">';

    column = row.insertCell(-1);
    column.innerHTML = '<input type="text" name="textfield_d" style="width:105px;">';

    column = row.insertCell(-1);
    column.innerHTML = '<select name="select" style="visibility:hidden;"></select>';

    tabBody.appendChild(row);

    numberRow--;
    var previousButton = document.getElementById('column_'+numberRow);
    previousButton.innerHTML = "";
}   
    </script>
  </head>
  <body>
    <div id="contain">
      <div style="padding:20px 0px 10px 40px;">
        <b>Medications:</b>
      </div>
      <div style="padding:0px 0px 0px 35px;">
        <form action="" method="get">
          <table id="mytable" width="604" cellpadding="5px">
            <thead>
              <tr>
                <td width="35">

                </td>
                <td width="109">
                  Name:
                </td>
                <td width="106">
                  Dose:
                </td>
                <td width="112">
                  Frequency:
                </td>
                <td width="153">
                  Reason Prescribed:
                </td>
                <td width="13">

                </td>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td id="column_1" width="24">
                  <input name="button" type="button" value="+" onclick="addOneRow()" style="height:20px; font-size:11px;">
                </td>
                <td width="105">
                  <input type="text" name="textfield_a" style="width:105px;">
                </td>
                <td width="105">
                  <input type="text" name="textfield_b" style="width:105px;">
                </td>
                <td width="105">
                  <input type="text" name="textfield_c" style="width:105px;">
                </td>
                <td width="105">
                  <input type="text" name="textfield_d" style="width:105px;">
                </td>
                <td width="56">
                  <select name="select" style="visibility:hidden;">
                    </select>
                </td>
              </tr>
            </tbody>
          </table>
        </form>
      </div><img src="http://myvirtualltciguy.com/img/ltci_line.png" style="padding:20px 0px 20px 40px;">
      <div class="submit2">
        <input type="submit" value="Submit" style="height:30px;">
      </div>
    </div>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...