jQuery 即使名称属性设置正确,验证也无法正常工作
jQuery validation not working even with name attributes set properly
需要一些帮助来确定我的代码有什么问题。我所做的文档和所有搜索都说明了同样的事情:必须为验证工作设置名称属性。问题是我的所有名称属性都已设置,但仍未验证。我在其他表格上做了同样的步骤,没有任何问题。所以我在这里不知所措。有什么想法吗?
这是 fiddle
https://jsfiddle.net/dpq94a3f/
这是HTML
<form name="insert" method="post">
<div class="form-group">
<label for="fid">ID</label>
<input type="text" class="form-control" name="fid" id="fid">
</div>
<div class="form-group">
<label for="fx">X axis</label>
<input type="text" class="form-control" name="fx" id="fx">
</div>
<div class="form-group">
<label for="fy">Y axis</label>
<input type="text" class="form-control" name="fy" id="fy">
</div>
<div class="form-group">
<label for="finfo">Info</label>
<input type="text" class="form-control" name="finfo" id="finfo">
</div>
<button type="submit" class="btn btn-primary" name="send_data" id="send_data" >Send Data</button>
<button type="reset" class="btn btn-danger float-right" name="reset_data" id="reset_data" >Reset Data</button>
</form>
这里是 jQuery 验证规则
$(document).ready(function () {
$('#insert').validate({
rules: {
fid: {
required: true,
maxlength: 8,
pattern: /^[A-Za-z][A-Za-z0-9]*$/
},
fx: {
required: true,
maxlength: 5,
number: true
},
fy: {
required: true,
maxlength: 5,
number: true
},
finfo: {
required: true,
maxlength: 255
}
},
messages: {
fid: {
required: "Required field",
maxlength: "Too many characters",
pattern: "Wrong pattern"
},
fx: {
required: "Required field",
number: "Number only"
},
fy: {
required: "Required field",
number: "Number only"
},
finfo: {
required: "Required field",
maxlength: "Too many characters"
}
},
errorElement: 'span',
errorPlacement: function (error, element) {
error.addClass('invalid-feedback');
element.closest('.form-group').append(error);
},
highlight: function (element, errorClass, validClass) {
$(element).addClass('is-invalid');
},
unhighlight: function (element, errorClass, validClass) {
$(element).removeClass('is-invalid');
}
});
});
您的代码 select 它由 $('#insert')
。
应该是:
<form id="insert" method="post">
并且name属性应该添加到表单中的每个字段,否则该字段将不会提交。
你必须有办法 select 你不能尝试 select 带有 id insert 的元素,并且没有带有 id insert 的元素,因为它将 return null 并且你无法验证 null
需要一些帮助来确定我的代码有什么问题。我所做的文档和所有搜索都说明了同样的事情:必须为验证工作设置名称属性。问题是我的所有名称属性都已设置,但仍未验证。我在其他表格上做了同样的步骤,没有任何问题。所以我在这里不知所措。有什么想法吗?
这是 fiddle https://jsfiddle.net/dpq94a3f/
这是HTML
<form name="insert" method="post">
<div class="form-group">
<label for="fid">ID</label>
<input type="text" class="form-control" name="fid" id="fid">
</div>
<div class="form-group">
<label for="fx">X axis</label>
<input type="text" class="form-control" name="fx" id="fx">
</div>
<div class="form-group">
<label for="fy">Y axis</label>
<input type="text" class="form-control" name="fy" id="fy">
</div>
<div class="form-group">
<label for="finfo">Info</label>
<input type="text" class="form-control" name="finfo" id="finfo">
</div>
<button type="submit" class="btn btn-primary" name="send_data" id="send_data" >Send Data</button>
<button type="reset" class="btn btn-danger float-right" name="reset_data" id="reset_data" >Reset Data</button>
</form>
这里是 jQuery 验证规则
$(document).ready(function () {
$('#insert').validate({
rules: {
fid: {
required: true,
maxlength: 8,
pattern: /^[A-Za-z][A-Za-z0-9]*$/
},
fx: {
required: true,
maxlength: 5,
number: true
},
fy: {
required: true,
maxlength: 5,
number: true
},
finfo: {
required: true,
maxlength: 255
}
},
messages: {
fid: {
required: "Required field",
maxlength: "Too many characters",
pattern: "Wrong pattern"
},
fx: {
required: "Required field",
number: "Number only"
},
fy: {
required: "Required field",
number: "Number only"
},
finfo: {
required: "Required field",
maxlength: "Too many characters"
}
},
errorElement: 'span',
errorPlacement: function (error, element) {
error.addClass('invalid-feedback');
element.closest('.form-group').append(error);
},
highlight: function (element, errorClass, validClass) {
$(element).addClass('is-invalid');
},
unhighlight: function (element, errorClass, validClass) {
$(element).removeClass('is-invalid');
}
});
});
您的代码 select 它由 $('#insert')
。
应该是:
<form id="insert" method="post">
并且name属性应该添加到表单中的每个字段,否则该字段将不会提交。
你必须有办法 select 你不能尝试 select 带有 id insert 的元素,并且没有带有 id insert 的元素,因为它将 return null 并且你无法验证 null