Parsley是否有一种简单的方法来加载表单,其中禁用了“提交”按钮并使其能够满足表单的所有验证要求?在使用parsleyjs验证后启用提交按钮
回答
下面的代码可以使用,它加载了一个表单禁用提交按钮,使其在形式的某些验证要求已得到满足:
function formValidation(oEvent) {
oEvent = oEvent || window.event;
var txtField = oEvent.target || oEvent.srcElement;
var t1ck = true; //Enter Text Field ID/Name in place of 't1'
var msg = " ";
if(document.getElementById("t1").value.length < 3) {
t1ck = false;
msg = msg + "Text Entered should be minimun 3 char length";
}
//Enter Text Field ID/Name in place of 't1'
if(document.getElementById("s1").value.length < 1) {
t1ck = false;
msg = msg + " Select one of the options";
}
//Enter Select Field ID/Name in place of 's1'
if(t1ck) {
document.getElementById("btnSignUp").disabled = false;
}
//Enter submit button ID/Name in place of 'btnSignUp'
else{
document.getElementById("btnSignUp").disabled = true;
}
}
function resetForm() {
document.getElementById("btnSignUp").disabled = true;
var frmMain = document.forms[0];
frmMain.reset();
}
window.onload = function() {
var btnSignUp = document.getElementById("btnSignUp");
var btnReset = document.getElementById("btnReset"); //Enter reset button ID/Name in place of 'btnReset'
var t1 = document.getElementById("t1");
var s1 = document.getElementById("s1");
var t1ck = false;
document.getElementById("btnSignUp").disabled = true;
t1.onkeyup = formValidation;
s1.onclick = formValidation;
btnReset.onclick = resetForm;
}
我不知道你是什么意思“容易”,但你的后续可以完成。
您需要listen to the eventsparsley:form:success
和parsley:form:error
来启用/禁用按钮。
您还需要监视每个表单字段的更改,以强制Parsley进行验证。最后,一旦你点击submit
,欧芹就执行验证。由于提交被禁用,您需要手动触发验证。
所以,这里的工作示例(jsfiddle):
<form>
<input type="text" name="field" data-parsley-required />
<button type="submit" disabled>Submit</button>
</form>
<script>
$(document).ready(function() {
// bind Parsley to the form
$("form").parsley();
// Whenever parsley validates successfully, we enable the submit button
$.listen('parsley:form:success', function(ParsleyForm) {
ParsleyForm.$element.find('button').prop('disabled', false);
});
// When a validation error occurs, we disable the submit button
$.listen('parsley:form:error', function(ParsleyForm) {
ParsleyForm.$element.find('button').prop('disabled', true);
});
// We need to monitor all form fields and force Parsley's validation manually
// This will result in enabling or disabling the submit button
$("form :input").change(function() {
$(this).closest('form').parsley().validate();
});
});
</script>
请注意,你需要让你监控所有字段(输入,选择,文本域等)的变化。
良好的起点。我相信你也可以使用'trigger'选项(把它设置为'input'),你不需要自己调用'validate'。 –
@ Marc-AndréLafortune好的。我相信你在谈论'data-parsley-trigger'?如果是这样,我只是试了一下,似乎没有工作。 [检查这个jsfiddle](http://jsfiddle.net/milz/5oLzfarn/1/)。这个字段的确认确实被触发了,但事件'parsley:form:success'和'parsley :: form:error'永远不会被触发(在JSfiddle中,你永远不会得到'alert'('success')'。 –
嗯,可能的。“之前提交”的东西应该可以清理。 –
- 1. 提交后启用提交按钮
- 2. 表单验证和提交后禁用“提交”按钮。 PHP,JQ?
- 3. 仅使用提交按钮启动验证
- 4. 启动提交按钮中的表单验证未启用
- 5. 在Magento验证后点击一次后禁用提交按钮
- 6. AJAX验证不起作用(提交按钮启用/禁用)
- 7. 使用parsleyjs onkeyup验证
- 8. 在AngularJS中启用复杂验证和提交按钮
- 9. 在Bootstrap验证器中启用提交按钮
- 10. 禁用启用不显眼验证的具体提交按钮
- 11. 验证提交按钮
- 12. JavaScript验证提交按钮
- 13. 验证提交按钮(angularjs)
- 14. 禁用提交按钮jQuery验证
- 15. 禁用提交按钮直到验证
- 16. JQuery验证插件在验证后重新启用提交
- 17. 如何在多个表单域验证完成后启用提交按钮
- 18. 如何启用验证后的提交按钮(空文本等)在extjs
- 19. 如何获得提交按钮以便在验证发生后重新启用
- 20. 启用提交按钮在完成图像/高度和宽度验证后
- 21. 在提交后禁用提交按钮
- 22. 如果表单验证失败,重新启用提交按钮
- 23. jQuery验证启用提交按钮时有效
- 24. 如何根据文本验证实时启用提交按钮?
- 25. 如何在选择单选按钮后启用提交按钮?
- 26. 使用ember验证状态禁用/启用表单提交按钮
- 27. 点击验证后禁用提交按钮?
- 28. asp.net验证组成功后禁用JavaScript提交按钮
- 29. jQuery验证禁用提交按钮,直到表单验证
- 30. 如何使用jQuery在asp.Net提交按钮上实现验证?
你的代码没有使用[Parsley.js](http://parsleyjs.org/),它是一个带有开箱即用验证的jQuery插件。在你的情况下,你正在定义纯JavaScript的所有验证,这不是什么OP后。 –