每次用户更改下拉列表的值时,我都需要更改输入框的值。值应该是“当前日期时间”,我不能让它工作。在下面的代码中,每当我更改特定行(比如第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>