每次用户更改下拉列表的值时,我都需要更改输入框的值。值应该是“当前日期时间”,我不能让它工作。在下面的代码中,每当我更改特定行(比如第3行)的下拉值时,所有行中输入框(当前日期时间)的值都会受到影响。它们具有相同的当前日期时间值。不应更改其他行的当前日期时间值。只有用户更改下拉列表的行。我是不是丢了什么东西?顺便说一下,我必须使用DOM。

    <table id="myTable">
      <tr>
        <td>Value to Select: <select onChange="changeDateTime();"></select></td>
        <td>Current Date Time: <input/></td>

      </tr>
    </table>

Javascript代码:
function changeDateTime(){

  var today = new Date();
  var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
  var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
  var currentDateTime = date+' '+time;

  var d =  id('myTable', document);
  for (var x=1; x<d.rows.length; x++) {
       d.rows[x].cells[2].firstChild.value = currentDateTime;
       }
}

最佳答案

检查下面的代码片段。

function changeDateTime(obj) {
  var today = new Date();
  var date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate();
  var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
  var currentDateTime = date + ' ' + time;

  var _input = obj.parentNode.nextElementSibling.getElementsByTagName('input')[0]
  _input.value = currentDateTime;
}

<table id="myTable">
  <tr>
    <td>Value to Select:
      <select onChange="changeDateTime(this);">
        <option>1</option>
        <option>2</option>
      </select>
    </td>
    <td>Current Date Time:
      <input/>
    </td>
  </tr>
  <tr>
    <td>Value to Select:
      <select onChange="changeDateTime(this);">
        <option>3</option>
        <option>4</option>
      </select>
    </td>
    <td>Current Date Time:
      <input />
    </td>
  </tr>
</table>

09-11 18:21
查看更多