我目前正在使用带有ejs模板的NodeJS和一个mySQL数据库。 我创建了一个ejs,可以动态打印一个表,该表代表数据库中的一个表:
代码如下:
<% for(var i=0; i<info.length; i++) {%>
<tr>
<td><b><%= info[i].id %></b></td>
<td><%= sinfo[i].path %></td>
</tr>
<% } %>
这很好。
在相同的ejs中,您可以找到带有输入字段的表单。
看起来像这样:
<input type="text" name="id" placeholder="id input"required>
现在,我想在表格的每一行中创建一个按钮。 当按下按钮时,应该将按钮所在的列中的ID输入到我的表单字段中。所以每一行都有一个按钮!
我找不到实现此目的的方法。
答案 0 :(得分:0)
这应该有效:
<% for(var i=0; i<info.length; i++) {%>
<tr>
<td><b><%= info[i].id %></b></td>
<td><%= info[i].path %></td>
<td><input type="button" onclick="document.getElementById('myText').value='<%= info[i].id %>'" value="Click" /></td>
</tr>
<% } %>
将ID myText
设置为输入文本:
<input type="text" name="id" id="myText" placeholder="id input">
更清洁的解决方案是在您的javascript代码中的某处创建一个函数:
function onClick(id){
document.getElementById('myText').value=id;
}
所以您的ejs代码将是:
<% for(var i=0; i<info.length; i++) {%>
<tr>
<td><b><%= info[i].id %></b></td>
<td><%= info[i].path %></td>
<td><input type="button" onclick="onClick('<%= info[i].id %>')" value="Click" /></td>
</tr>
<% } %>