【发布时间】:2020-12-03 20:19:42
【问题描述】:
我正在将我的 HTML/JS 转移到 Django 并使用它的验证表单。但是,我仍然想将 Jquery 用于某些事情,例如确保在隐藏 div 之前输入答案。 Jquery validate 曾经工作,但我打破了它过渡到 Django,可能是使用输入标签来创建我的输入?我使用onclick来验证而不是顺便提交。
不管怎样,这里是 JS:
$(document).ready(function() {
var validater = $("#cc_form").validate({
rules: {
pt_cc : {
required: true,
minlength: 3,
},
},
messages: {
pt_cc: "Please enter an answer",
},
errorPlacement: function(error, element) {
if (element.attr("name") == "pt_cc") {
error.appendTo("#cc_error")}
else {
error.insertAfter(element);}},
onfocusout: false,
invalidHandler: function(form, validater) {
var errors = validater.numberOfInvalids();
if (errors) {
validater.errorList[0].element.focus();}
}});});
function sendto() {
if ($("#cc_form").valid()) {
console.log('valid');}
else {return false};}
在 Django 完成它之后,渲染的 HTML:
<form id='cc_form' name="contentForm" role="form" data-toggle="validator">
<div style='display:none; background-color:white' class="jumbotron shadow-lg text-center mb-4 mx-5" id=somethingelse_page>
<h3>In 5 words or so, try to describe your problem.</h3><hr>
<div class="d-flex align-items-center mx-auto input-group mb-2">
<div class="input-group mb-2 col-md-6 mx-auto">
<input type="text" name="pt_cc" placeholder="For example: "I can't sleeep at all"" class="form-control" id="something_else_cc_answer" maxlength="75" required="">
</div>
</div>
<div id='sub_1' class='row'>
<input id='sub_but_1' type="button" class="btn btn-primary d-flex align-items-center px-4 mx-auto my-3" value='Next' onclick='sendto()'>
</div>
</form>
</div>
每次单击该按钮时,控制台都会打印“有效”并继续前进。我不明白表单如何在输入字段中没有任何内容的情况下通过。
也许还需要注意的是,在检查元素时,输入末尾所需的字段显示时没有 = 或“”,这是在处理要粘贴到此处的元素时出现的。
【问题讨论】:
-
您的代码正在运行。我所做的唯一更改是添加一个 ID 为
cc_error的 div,我在您提供的代码中没有找到它。
标签: javascript jquery django validation