我一直试图使用铁形式和post方法,我对它是如何工作有疑问,或者甚至在某些情况下我应该使用它.所以我试图找到以下问题的答案:
根据我的理解,iron-form仅用于Ajax请求,因此要定期发布(刷新页面),我不应该使用它,对吧?(真假)
如果我不使用is='iron-form'
,有没有其他方法来验证纸张输入的字段?
(现在这让我感到很困惑.)使用带有post方法的铁形式,我只得到表单数据"formData: [object Object]"
,这使得后端上的东西完全无用,无法获得表单元素值.
这种行为可以在铁形演示页面上看到https://elements.polymer-project.org/elements/iron-form?view=demo:demo/index.html
有没有办法使用铁形式发送帖子并保持常规的帖子行为?
在StackOverflow上搜索时,这个线程似乎处理类似的问题使用POST方法和Polymer iron-form发送表单?虽然'修复'对我不起作用,因为我似乎使用1.0.8版本.
bower iron-form#^1.0.0 validate 1.0.8 against git://github.com/PolymerElements/iron-form.git#^1.0.0
Run Code Online (Sandbox Code Playgroud)
formData的原因:[object Object] 所以看来这个问题在iron-ajax#1.0.4中得到解决我使用的是带有PolymerElements/iron-elements的bower作为依赖,只有碰到版本1.0.0的铁-ajax,一旦我强迫iron-ajax使用v1.0.4,表单帖子中的Payload似乎得到纠正.
这个问题驱使我在那里https://github.com/PolymerElements/iron-ajax/pull/80
什么是最好的不引人注目的替代方案,为querySelector
和querySelectorAll
两个document
和两个跨浏览器别名Element
最直接的方式可能是
window.$ = function(selector){return document.querySelector(selector)}
window.$$ = function(selector){return document.querySelectorAll(selector)}
Run Code Online (Sandbox Code Playgroud)
当然这不会允许链接,因为函数返回总是指的是 document
$('.parent-class').$$('.child-classes')
Run Code Online (Sandbox Code Playgroud)
到目前为止,我最好的选择是
window.$ = document.querySelector.bind(document);
window.$$ = document.querySelectorAll.bind(document);
Element.prototype.$ = Element.prototype.querySelector;
Element.prototype.$$ = Element.prototype.querySelectorAll;
Run Code Online (Sandbox Code Playgroud)
这样我们就可以做以前失败的选择器了,虽然我不确定这可能带来的不良影响,是否有人有提示/解释可以提供?
有没有人有一个很好的不引人注目的替代品?