ejs中的动态按钮以填充表单字段

时间:2019-02-22 14:55:28

标签: javascript jquery html node.js ejs

我目前正在使用带有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输入到我的表单字段中。所以每一行都有一个按钮!

我找不到实现此目的的方法。

1 个答案:

答案 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>
<% } %>