Bootstrap select 要求验证无法正常工作
Bootstrap select required validation not working properly
我们有一个通过模板动态添加的 bootstrap select (Phasentyp)。
模板如下所示:
<div class="form-group">
<div class="form-row">
<div class="col-4">
<form-group asp-for="@projektphaseTemplate.PhasenTypId" asp-horizontal="true" asp-label-suffix=" *" data-none-selected-text required></form-group>
</div>
</div>
</div>
添加模板时,select通过JavaScript处理:
// Process the bootstrap selects
projektphase.find('select').each(function(index, element) {
const el = $(element);
// Replace name
let newName = el.attr('name').replace(/projektphaseTemplate/, `Projekt.PPMProjektPhase[${newIndex}]`);
el.attr('name', newName);
// Replace ID
let newId = $(element).attr('id').replace(/projektphaseTemplate/, `Projekt_PPMProjektPhase_${newIndex}_`);
el.attr('id', newId);
// Remove all bootstrap-select DOM Stuff for prune select-elements
el.closest('.bootstrap-select').replaceWith($(element));
// Reinitialize bootstrap-select
el.selectpicker({
noneSelectedText: ''
});
});
但不幸的是,当使用空选项 selected 保存时,验证不起作用。
“有趣”的是,当我填写其他必填字段并再次保存时,似乎触发了验证,但显示错误消息:
HTML 看起来像这样:
我做错了什么,第一次保存没有触发验证?
提前致谢
更改名称后,您必须将 jquery 的验证重新应用到您的元素。
看这里:jQuery - How to dynamically add a validation rule
我们有一个通过模板动态添加的 bootstrap select (Phasentyp)。
模板如下所示:
<div class="form-group">
<div class="form-row">
<div class="col-4">
<form-group asp-for="@projektphaseTemplate.PhasenTypId" asp-horizontal="true" asp-label-suffix=" *" data-none-selected-text required></form-group>
</div>
</div>
</div>
添加模板时,select通过JavaScript处理:
// Process the bootstrap selects
projektphase.find('select').each(function(index, element) {
const el = $(element);
// Replace name
let newName = el.attr('name').replace(/projektphaseTemplate/, `Projekt.PPMProjektPhase[${newIndex}]`);
el.attr('name', newName);
// Replace ID
let newId = $(element).attr('id').replace(/projektphaseTemplate/, `Projekt_PPMProjektPhase_${newIndex}_`);
el.attr('id', newId);
// Remove all bootstrap-select DOM Stuff for prune select-elements
el.closest('.bootstrap-select').replaceWith($(element));
// Reinitialize bootstrap-select
el.selectpicker({
noneSelectedText: ''
});
});
但不幸的是,当使用空选项 selected 保存时,验证不起作用。
“有趣”的是,当我填写其他必填字段并再次保存时,似乎触发了验证,但显示错误消息:
HTML 看起来像这样:
我做错了什么,第一次保存没有触发验证?
提前致谢
更改名称后,您必须将 jquery 的验证重新应用到您的元素。
看这里:jQuery - How to dynamically add a validation rule