【问题标题】:Console.log data from HTML form input来自 HTML 表单输入的 Console.log 数据
【发布时间】:2018-03-26 13:23:51
【问题描述】:

https://codepen.io/anon/pen/NYaeXV

我正在尝试记录 HTML 表单输入的值。我在 CodePen 中放置了多个选项。这是我最初的思考过程。

<form action="">
<input type="text" name="data" id="data">
<button type="submit">Submit</button>
</form>

function sConsole() {
  var data = document.getElementById("data");
  console.log(data.value());
}
sConsole();

【问题讨论】:

  • 值不是一个方法,它是一个属性。删除()。此外,您的代码将在页面加载时运行,因此除非您设置默认值,否则输入中将没有任何值。因此,您可能希望在输入更改或表单提交时将其绑定。
  • 抱歉,您只需阅读文档而不是问这个问题会更容易更快
  • @epascarello 谢谢!这无疑为我指明了正确的方向。一旦我从 .value 中取出(),它就开始在页面加载时显示它的初始值"",就像你说的那样。谢谢你的解释!
  • 既然你的意思对我来说很清楚,甚至语法都不是!我发现你的问题很有用并投票赞成!

标签: javascript forms console.log


【解决方案1】:

您需要使用value 而不是value() 因为value 不是一个函数,还可以考虑使用e.preventDefault() 来避免页面重新加载一件事,通过将sConsole() 添加到您的js 文件中重新要求在页面加载时执行该功能,您需要将您的功能移至提交事件。

这是一个工作示例和快乐编码:)

function sConsole(event) {
  event.preventDefault();
  var data = document.getElementById("data");
  console.log(data.value);
  
}
<div id="container">
  <h1>Hello, world!</h1>
  <h4>Input your console data below : </h4>
  <form action="" id="form" onsubmit="sConsole(event)">
    <input type="text" name="data" id="data">
    <button type="submit">Submit</button>
  </form>
</div>

【讨论】:

  • 是的!提交!那是我忘记的大事!谢谢!
【解决方案2】:

你错过了onclickonSubmit,你也应该使用.value

function sConsole() {
  var data = document.getElementById("data");
  console.log(data.value);
  //!!Option 1a
  //console.log(data.submit());
}
<div id="container">
  <h1>Hello, world!</h1>
  <h4>Input your console data below : </h4>
  <form action="">
    <input type="text" name="data" id="data">
    <button type="submit" onClick="sConsole()">Submit</button>
  </form>
</div>

【讨论】:

    【解决方案3】:

    您已经很接近了,只需考虑几件事。

    获取输入字段的值

    输入元素的 value 属性将文本存储在文本框中。要在 javascript 中检索 this,请使用 ExampleElement.value,例如:

    var dataValue = document.getElementById("data").value;
    

    var data = document.getElementById("data");
    var dataValue = data.value;
    

    您也可以在输入标签中使用value="" 指定值属性。如果您想预填充输入文本框,这很有用,例如,如果您将用户输入发送到 php 脚本以执行操作并希望返回包含已包含信息的文本框。

    调用 Javascript 函数

    有多种方法可以调用 javascript 函数,包括在某些事件发生时调用。在您的情况下,您可能希望每次用户单击提交时记录输入值。您可以添加一个事件侦听器,但为了简单起见,我们只使用内联代码。每次他们提交时,让我们记录一下,所以onsubmit="sConsole();"。现在提交操作将运行您的日志记录功能。

    如果您想在用户键入时记录每个更改,您可以使用事件侦听器,对输入值进行更复杂的评估。

    防止默认

    您可能不希望表单实际提交到服务器并在用户每次单击提交时重新加载页面。通过使用event.preventDefault();,javascript 阻止了将表单提交到服务器的常规操作,而是让用户输入和页面保持原样。

    如果您希望在每次提交后“擦除”文本框,最好重置函数中的值,而不是提交表单。要重置该值,您只需执行data.value = ""

    代码示例

    总而言之,这是一个示例代码段,其中包含有关您的原始示例的 cmets。

    <form action="" onsubmit="event.preventDefault(); sConsole();"> <!-- use inline JS to print input to console on submit -->
    <input type="text" name="data" id="data">
    <button type="submit">Submit</button>
    </form>
    
    <script>
    function sConsole() {
      var data = document.getElementById("data");
      console.log(data.value); // data is the element, and we want its value
    }
    //sConsole(); This would call it only on script load, which isn't what you want
    </script>
    

    【讨论】:

    • 非常感谢您提供的详细信息!绝对要记住很多
    猜你喜欢
    • 2013-01-23
    • 2023-03-28
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多