【问题标题】:Set Input Value with Javascript - Wont POST on Submit使用 Javascript 设置输入值 - 提交时不会 POST
【发布时间】:2018-04-17 15:53:40
【问题描述】:

我正在尝试从 API 获取数据并将其发布到数据库,当您手动输入数据时我使用的表单。但是当您从 API 请求中设置数据时 - 它会在页面上更新。虽然发布时显示为空白。

我正在使用

document.getElementById('Title').value = item.volumeInfo.title;

获取输入中的“值”。

    <div class="form-group">
            <label for="name">Authors</label>
            <input class="form-control" type="text" value="" id="Author" ng-model="book.Author" required="required"/>
        </div>

附加到表单。

<button class="btn btn-primary" ng-disabled="AddNewForm.$invalid ||
isUnchanged(book)" id="add-new-btn"
ng-click="New_Book(book)">Add</button>

为什么提交为空白?

【问题讨论】:

  • 你输入的类型是什么?
  • 我的输入只是“文本”
  • 请发布一些我们可以使用的东西。目前状态下是不可能的。
  • 如何提交“表格”?提交前你会做什么?任何事件监听器?

标签: javascript html forms post


【解决方案1】:

您的表单元素通过其“名称”属性提交其值...您的输入元素是否生成名称属性?如果没有,这就是它不起作用的原因。

例如

<input name=“foo” value=“bar”/>

提交为:

?foo=bar

【讨论】:

  • 真的不明白你的意思,对不起!你能换个方式解释吗?
  • 如果您尝试通过 HTTP 提交表单或序列化内容,您将需要一个 name 属性,因为这是浏览器用于每个键/值对的属性。浏览器不使用id 属性。
  • 啊,我明白了!虽然表单确实发布到数据库如果我手动输入数据(它从数据库传递数据的角度)不确定你将如何使用 name 属性。
【解决方案2】:

你的问题对我来说不够清楚。但我试着做一个简单的例子,让它尽可能通用,让您使用表单输入!

这是Live Preview

HTML

<form action="post" id="myForm">
   <input type="text" id="title">
   <input type="submit" value="Click To Update">
</form>

<h2 id="result"></h2>

JavaScript

// Select our main elements (form, text input, result heading)
const form = document.getElementById("myForm");
const titleInput = document.getElementById("title");
const result = document.getElementById("result");

form.onsubmit = function(e) {

  // Don't refresh the page
  e.preventDefault();

  // Set the input value into the result heading
  result.innerHTML = titleInput.value;
}

此解决方案允许您在inputsubmitting 之后的表单中写入任何内容。您可以在其他地方使用这些数据。

【讨论】:

  • 我想我可能把问题表述得不好,我在搜索按钮中输入了书名,它使用谷歌图书 api 用 js 值函数填充表单。所以数据在页面中,但是当我提交它时,它是空白的。虽然如果我手动输入表单,它会正常发布。
  • 好。传递数据时是否使用Event Listener?例如;我使用onsubmit 事件将titleInput 值传递给result 标题。
  • 我的表单上有“ng-click="New_Book(book)”,可以将其发布到 Angular 中,如果您是这个意思?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 2016-06-11
  • 2011-08-07
  • 1970-01-01
相关资源
最近更新 更多