我遇到了一个问题,即提交按钮的值没有与表单数据一起提交。这是因为欧芹。经过一些更多的故障排除后,我发现如果我使用脚本parsley.js而不是parsley.remote.js,问题就不再存在了。
注意:此问题仅发生在Internet Explorer和Firefox中,而在Chrome中,一切正常。
以下是plunkr中的一个示例,它演示了使用脚本 - parsley.js,这两个浏览器都不会发生此问题,请参阅:http://plnkr.co/edit/0ylxasiyrlxhSrhrMaFH?p=preview
这意味着如果我们在任何浏览器中运行上述plunkr并在文本框中输入任何内容然后单击“提交”,则提交按钮值将从" undefined" to" submitBtn"应该如此。
Here
是plunkr中的另一个例子,它使用脚本 - parsley.remote.js来证明Firefox和Internet Explorer都有这个问题,而在Chrome中它很好,请参阅:{{3} }
这意味着如果我们在Internet Explorer或firefox中运行上述plunkr并在文本框中输入任何内容然后单击“提交”,则提交按钮值永远不会更改为" submitBtn"应该如此,但它总会保持不变#34;
有人遇到过这个问题或有解决方案吗?非常感谢。
答案 0 :(得分:0)
我遇到同样的问题在某些情况下使用当前版本的Parsley(2.2.0-rc1)假设来修复此问题(请参阅这里:https://github.com/guillaumepotier/Parsley.js/pull/947#diff-for-comment-36081575)
1)我有一个带有欧芹远程验证字段的表单,以及2)远程验证器没有被调用,直到我已经点击了表单上的提交按钮。 / p>
示例 - 我有一个表单,用户可以在其中更改用户名,如下所示:
<form id="profile-username" action="/profile" method="post" role="form" data-parsley-validate>
<input type="text" name="username" value="{{ username }}" maxlength="255" required
data-parsley-type="alphanum"
data-parsley-trigger="change"
data-parsley-remote="/api/checkuser"
data-parsley-remote-reverse="true"
data-parsley-remote-message="Username already taken"
data-parsley-type-message="Username can only contain letters A-Z and numbers 0-9" >
<input type="password" name="password" required minlength="6" maxlength="150">
<input type="submit" name="submit" value="Change Username">
如果我更改username
字段中的值,它会触发远程验证器。稍后当我点击提交时,表单将按预期提交包括input [type=submit]
的值。
但是,如果我不更改username
字段中的值并按原样提交表单,则仍会调用远程验证程序(在我之后)已经点击了提交)但是表单发布没有 submit
的值,这不是我想要的。
这似乎是一个时间问题......我认为Parsley正在使用幕后的提交按钮进行操作,这些按钮在用户点击&#之间没有机会完成39;提交&#39;浏览器转到下一页。
底线:在任何情况下,使用input type="hidden"
传递您需要的任何值可能更安全,而不是依赖于submit
的价值