【问题标题】:Posting form data and storing the response in a variable using plain JS not JQUERY使用普通 JS 而不是 JQUERY 发布表单数据并将响应存储在变量中
【发布时间】:2014-01-21 18:52:37
【问题描述】:

我正在做一些尝试学习 Javascript 的练习,我创建了一个基本的网络表单,它将发布表单数据并在 iframe 中显示响应。 (代码如下)

我想添加这个并将来自服务器的响应作为字符串存储在变量中。如何使用纯 Javascript 来做到这一点?我知道使用 JQuery 会容易得多,但我想在转向 JQuery 之前学习 JS 基础知识。

感谢任何帮助。

 <form action="http://BLANK.ASP" method="get" target="hiddenFrame"
    <pre>
    userID:    <input type="text" name="userid"><br>
    password:  <input type="text" name="userpassword"><br>



    <center>
    <button type="submit">Submit</button>    
    </center>

    </pre>



    </form>

    <iframe id="hiddenFrame" name="hiddenFrame" style="width:1000px">hi
    </iframe>

【问题讨论】:

  • 您可以创建一个包含所有字段的数组,然后使用 JSON.stringify 将其作为字符串
  • 感谢您的回复。我还在学习,所以我不确定如何实施你的建议。
  • 你会得到所有的字段,得到他们所有的名字/值,从中创建一个数组,然后将它字符串化。

标签: javascript variables webforms


【解决方案1】:

我有一种感觉,您可能会与Same Origin policy 发生冲突。但是,如果 iframe 地址在同一个域内,则可以通过

访问其内容
document.getElementById('hiddenFrame').contentWindow.document

然后,您可以通过.innerHTML 或任何其他标准JavaScript 方法获取信息。不幸的是,如果表单处理页面与您的网页不在同一个域中,您将遇到权限错误。 (见上面的链接)

假设您可以控制处理表单的页面,您可以尝试将该信息传递给父页面。希望您的 iframe 位于同一域内,并且以上内容对您有用。如果您向我提供有关您正在做的事情的更多信息,我可以用一些额外的信息来更新它。

【讨论】:

  • 我什至不需要使用 iframe。我只是将表单数据发布到网络服务器并接收响应。我只想将响应存储为变量。上面的代码是大部分代码。这只是我在浏览器中本地运行的练习。
  • 如果不知道网络服务器如何返回您的响应,很难说该怎么做。您可以尝试使用 AJAX 动态显示结果并拉取.innerHTML。如果您控制处理数据的页面,事情可能会更容易。告诉我。
猜你喜欢
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 2018-02-20
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
相关资源
最近更新 更多