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後。 –