当新用户访问该页面并输入系统中已存在的电子邮件时,我想执行以下操作:
使用jQuery我能够将焦点移至密码字段,但几毫秒后,焦点将被拉回电子邮件字段Parsley错误消息。
我尝试过使用data-parsley-focus="..."
和data-parsley-no-focus
,但这对我没有任何帮助。我还查看了源代码,我发现validate.focusedField.focus()
正在强制将焦点重新带回带错误的字段,但无法弄清楚如何停止
那么,有没有办法来覆盖这种行为?
答案 0 :(得分:2)
以下代码按预期工作,但您可能需要根据代码调整某些方面。
我做了什么:
data-parsley-focus="none"
添加到表单中,以避免自动关注第一个输入错误(默认情况下为行为)。
$(document).ready(function() {
$.listen('parsley:field:error', function(parsleyField) {
if (parsleyField.$element.attr('name') === 'field1') {
$("input[name=field2]").focus();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.0.7/parsley.min.js"></script>
<form id="myForm" data-parsley-validate data-parsley-focus="none">
<input type="text" name="field1" required data-parsley-minlength="50" data-parsley-trigger="focusout" />
<input type="text" name="field2" required />
<input type="submit" />
</form>
如果您遇到麻烦,请提供一个小提琴并在您的问题中添加相关代码。