JS动态更改表中的数据

时间:2016-10-16 23:52:38

标签: javascript php html merge html-table

我正在创建一个接口,该接口将从2个不同的数据库中获取数据,将该数据提供给接口,并使用该接口确定将哪条信息存储到新数据库中。 (基本上创建一个合并数据库的系统,但用户可以选择将哪些数据传递给新数据库。)在此界面中还有一个文本框,以便用户可以输入数据,以防两个数据库都有不正确的数据。

目前我只使用2个数据库的一部分,并希望实现一种复选框系统,用户可以选中一个框来选择数据,如果他们想要另一个框,那么前一个复选框就会去假。

我找到了一种方法,但它会占用整个表格,一旦你用另一个表格行尝试它就会崩溃。我想尝试使JS独立于每个表行。有没有办法对每一行实施这样的机制?这是我目前的代码:(Ps.Mac以前是一个PHP文件)

HTML:

<html>
  <head>
    <script src="jquery-1.12.4.min.js"></script>
    <script src="formAdd.js"></script>

    <link rel="stylesheet" type="text/css" href="dbInfo.css">
    <title>Database 1</title>
  </head>
  <body>
    <form name="contactform" method="post" action="">
      <table id="Forms" width="100%">
        <col width="10%" >
        <col width="30%" >
        <col width="30%" >
        <col width="30%" >
        <tr>
          <th style="background-color:#7FCCCC"> Fields </th> 
          <th style="background-color:#7FCCCC"> DB 1 </th> 
          <th style="background-color:#7FCCCC"> DB 2 </th> 
          <th style="background-color:#7FCCCC"> DB Nueva </th> 
        </tr>
        <tr style="background-color:#CCCCCC">
          <td style="font-weight:bold"> Fecha UTC </td> 
          <td> <input type="checkbox" name="FechaUTC1" onclick="CopyF(this.form)" value="September 14" align="right"> September 14 </td>  
          <td> <input type="checkbox" name="FechaUTC2" onclick="CopyF2(this.form)" value="November 17" align="right"> November 17 </td> 
          <td> <input type="text" name="FechaUTC3" size="60"> </td> 
        </tr>
      </table>

        <!-- <tr>
          <td style="font-weight:bold"> Fecha Local </td> 
          <td> <input type="checkbox" name="FechaLoc1" onclick="CopyFLoc(this.form)" value="<?php echo $test ?>" align="right"> Septiembre 13, 2016 23:06:31 Hora Local </td>
          <td> <input type="checkbox" name="FechaLoc2" onclick="CopyFLoc3(this.form)" value="<?php echo $test ?>" align="right"> Noviembre 14 2016 23:06:31 Hora Local </td>
          <td> <input type="text" name="FechaLoc3" size="60"> </td> 
        </tr>

        -->
        </table>
      <p>
        <input type="submit" value="Submit">   
      </p>
    </form>
  </body>
</html>

JS:

function CopyF(f) {
  if(f.FechaUTC1.checked == true) {
    f.FechaUTC3.value = f.FechaUTC1.value;
    if(f.FechaUTC2.checked == true)
        f.FechaUTC2.checked = false;
  }
}

function CopyF2(f) {
  if(f.FechaUTC2.checked == true) {
    f.FechaUTC3.value = f.FechaUTC2.value;
    if(f.FechaUTC1.checked == true)
        f.FechaUTC1.checked = false;
  }
}

1 个答案:

答案 0 :(得分:1)

对于问题的第一部分,我相信您最好使用单选按钮,因为它已经具有您尝试使用的功能类型(只能单击其中一个)。您可以非常轻松地添加第三个选项,其中包含&#34;其他&#34;因此,这将启用您可以写入的输入框。

确保它不会崩溃的最简单方法是确保每组无线电盒的行号是唯一的。

我在这里使用名为jQuery的库。它非常受欢迎,并具有许多内置功能。如果您之前从未使用过jQuery,我建议您前往CodeSchool并至少通过第一部分来熟悉我所写的内容。

&#13;
&#13;
$(function() {
  // this way of calling the dollar sign ($) function is a shorthand for $(document).ready();
  $('input.fecha-unico').on('click', function() {
    //I am adding an event to all inputs with the class 'fecha-unico'
    var $this = $(this); //the this object is itself just the HTMLElement object from your browser. Here I am wrapping it in the jquery functions to allow myself access to the functions jquery has.
    var $input = $this.closest('tr').find('input:text');
    //I am finding the closest TR to this radio element, and then searching ('finding') a textbox child.
    if ($this.val() == '-1') {
      //If this checkbox's value is -1, it means we are using the 'other' checkbox, and need to enable the text input.
      $input.prop('disabled', false);
    } else {
      //Otherwise, we need to make sure the writing thing is disabled (say you clicked the other box but then realized you wanted the first checkbox instead).
      if (!$input.prop('disabled')) {
        $input.prop('disabled', true)
      }
    }
  });

})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="contactform" method="post" action="">
  <table id="Forms" width="100%">
    <col width="10%">
      <col width="30%">
        <col width="30%">
          <col width="30%">
            <tr>
              <th style="background-color:#7FCCCC">Fields</th>
              <th style="background-color:#7FCCCC">DB 1</th>
              <th style="background-color:#7FCCCC">DB 2</th>
              <th style="background-color:#7FCCCC" colspan="2">DB Nueva</th>
            </tr>
            <tr style="background-color:#CCCCCC">
              <td style="font-weight:bold">Fecha UTC</td>
              <td>
                <input class="fecha-unico" type="radio" name="FechaUTC1" value="September 14" align="right">September 14</td>
              <td>
                <input class="fecha-unico" type="radio" name="FechaUTC1" value="November 17" align="right">November 17</td>
              <td>
                <label>Other:
                  <input type="radio" class="fecha-unico" name="FechaUTC1" value="-1" />
                </label>
              </td>
              <td>

                <input type="text" name="FechaUTC3" size="60" disabled>
              </td>
            </tr>
            <tr style="background-color:#CCCCCC">
              <td style="font-weight:bold">Fecha UTC</td>
              <td>
                <input class="fecha-unico" type="radio" name="FechaUTC2" value="September 14" align="right">September 14</td>
              <td>
                <input class="fecha-unico" type="radio" name="FechaUTC2" value="November 17" align="right">November 17</td>
              <td>
                <label>Other:
                  <input type="radio" class="fecha-unico" name="FechaUTC2" value="-1" />
                </label>
              </td>
              <td>

                <input type="text" name="FechaUTC3" size="60" disabled>
              </td>
            </tr>
  </table>

  <!-- <tr>
          <td style="font-weight:bold"> Fecha Local </td> 
          <td> <input type="checkbox" name="FechaLoc1" onclick="CopyFLoc(this.form)" value="<?php echo $test ?>" align="right"> Septiembre 13, 2016 23:06:31 Hora Local </td>
          <td> <input type="checkbox" name="FechaLoc2" onclick="CopyFLoc3(this.form)" value="<?php echo $test ?>" align="right"> Noviembre 14 2016 23:06:31 Hora Local </td>
          <td> <input type="text" name="FechaLoc3" size="60"> </td> 
        </tr>

        -->

  <p>
    <input type="submit" value="Submit">
  </p>
</form>
&#13;
&#13;
&#13;