在JSON对象中提交表单值

时间:2017-12-22 14:35:33

标签: javascript html5 polymer

我正在学习聚合物.js。目前,我正在开发一个简单的Web应用程序来签署用户。目前,每当我提交表单时,它都会以下面显示的格式提交,而不是完整的JSON对象。

dispatch_async(dispatch_get_main_queue(), ^{

      [historyTableView reloadData];

   });

而不是......

{
  email: "email@email.com",
  password: "password"
}

这是我的代码:

{
  "email":"email@email.com",
  "password":"password"
}

登录-input.html:

<form action="http://httpbin.org/post" method="post">

  <sign-in-input email="{{_email}}" password="{{_password}}"></sign-in-input>

  <input class = "paperbtn" type="submit" value="Sign in">

  <input name="email" value="[[_email]]" hidden>
  <input name="password" value="[[_password]]" hidden>

</form>

1 个答案:

答案 0 :(得分:0)

您应该在发送字符串时发送对象(obj)。

您是否在要发送的对象上使用了JSON.stringify(obj)

您不会询问的其他事项。

_onInput: function() {
  this.email = this.$.email.value.trim();
  this.password = this.$.password.value.trim();
}

您应该使用this.set('email', this.$.email.value.trim(),因为this.set在Polymer中发送一个事件来更新值。现在这不是一个问题,但如果您继续使用this.[property],它可以在其他元素中。

  <paper-input label = "Email" id = "email" required></paper-input>
  <paper-input label = "Password" id = "password" required></paper-input>

您可以立即将侦听器绑定到这些,以避免使用:

listeners: {
  'input': '_onInput'
},

_onInput: function() {
  this.email = this.$.email.value.trim();
  this.password = this.$.password.value.trim();
}

它看起来像:

 <paper-input label="Email" id="email" value="{{email::input}}" required></paper-input>
 <paper-input label="Password" id="password" value="{{password::change}}" required></paper-input>

我使用了两种Polymer侦听器,输入和更改。你可以使用。