我从cassandra数据库(使用iron-ajax和dom-repeat)加载一些记录,然后点击一行我打开一个纸质对话框,其中值被加载到铁形式中包含纸张输入的可编辑字段。编辑之后我应该能够提交以便更新数据库中的记录,但是使用纸质按钮它不起作用(使用简单的按钮至少试图将内容发送到REST强硬结束415错误)。 我尝试的是这样的:
<iron-ajax id="get_drafts" auto handle-as="json" last-response="{{drafts}}"></iron-ajax>
<template is="dom-repeat" items="{{drafts}}" as="item">
<div>{{item.field1}}</div>
<span><paper-button title="edit" on-click="openEditDialog"></paper-button></span>
<paper-dialog id="incidentEditDialog{{index}}" with-backdrop>
<form is="iron-form" action="/" id="myForm{{index}}" method="post">
<paper-input value="{{item.field1}}"><paper-input>
<paper-button raised on-click="submit">Submit</paper-button>
</form>
</paper-dialog>
</template>
然后尝试了所有不起作用的脚本选项我认为主要是因为我没有使用id-myForm {{index}}来成功识别表单。我找到了各种各样的例子但没有任何关于这种扭曲(在dom-repeat中的形式)。 至少这是可行的吗?我应该怎么做呢? 谢谢! 如果我使用:
<paper-button raised onclick="clickHandler(event)">Submit</paper-button>
然后是方法
function clickHandler(event) {
Polymer.dom(event).localTarget.parentElement.submit();
}
我收到415错误:出现意外错误(type = Unsupported Media Type,status = 415)。 内容类型&#39; application / x-www-form-urlencoded&#39;不支持
答案 0 :(得分:0)
问题在于<form>
(甚至用铁形式扩展)不能像纸质按钮一样无缝地与原生<button>
或<input>
一起使用。
当您在纸张按钮上执行on-click="submit"
时,您需要定义submit
方法(与您在示例中使用clickHandler的方法相同)。
如果您不想这样做,一个好的解决方法是将纸质按钮包裹在原生按钮中:
<button tabindex="-1">
<paper-button>Submit</paper-button>
</button>
负片tabindex存在,因此包装器无法获得焦点。
“不支持的媒体类型”错误是一个单独的问题,但向content-type="application/json"
添加<form>
可能对此有所帮助。