无法从HTML的输入框中获取新输入的值

时间:2018-10-12 08:00:20

标签: javascript html

我有一个表行,其中包含两个输入框和一个按钮。单击该按钮时,我需要获取用户在输入框中键入的新输入的值。所以我这样做。

<tr>
  <!-- Input box row (for new row input) -->
  <td><input type="text" id="new_E" value="Enter new text"></td>
  <td><input type="text" id="new_I" value="Enter new text"></td>
  <td><button class="add" onclick="add_row()">Add row</button></td>
</tr>

add_row()函数如下所示:

function add_row()
{
  //Step 1: Getting what the user typed in the new row
  var new_E=document.getElementById("new_E").value;
  var new_I=document.getElementById("new_I").value;
  console.log("User typed this:"+ new_E);
}

现在也在输入框中输入新值之后,这就是我在控制台中看到的内容:

User typed this: Enter new text

我不知道为什么document.getElementById("new_E").value函数中的add_row()不返回输入框的新值。 我知道这是非常基本的,但对我不起作用。您能帮我弄清楚这里出了什么问题吗?在此先感谢:)

1 个答案:

答案 0 :(得分:0)

目前还不清楚您想要什么。 new_I似乎是您的“新文本” ,对吗?因此,这首先是控制台日志记录,而不是“ new_E”

您还有其他一些我想指出的内容。您手动设置值。使用 placeholder 属性代替此处的操作。

gem https://rubygems.org/gems/brakeman | true
function add_row()
{
    //Step 1: Getting what the user typed in the new row
    var new_E=document.getElementById("new_E").value;
    var new_I=document.getElementById("new_I").value;
    console.log("User typed this: "+ new_E+", in the first input field");
    console.log("User typed this: "+ new_I+", in the second input field");
}

如果您的意思是将“新”值与旧值进行“连接”,以使它们出现在同一控制台日志中,则可以执行以下操作:

<input type="text" id="new_E" placeholder="Enter new text" value="test1">
<input type="text" id="new_I" placeholder="Enter new text" value="test2">
<button class="add" onclick="add_row()">Add row</button>
function add_row()
{
    //Step 1: Getting what the user typed in the new row
    var new_E=document.getElementById("new_E").value;
    var new_I=document.getElementById("new_I").value;
    console.log("User typed this: "+ new_E+" "+new_I);
}

这可能是XY problem。您是否简化了问题,以期希望得到可以帮助您解决其他/其他问题的答案?