Forms 在Svelte中验证动态生成的表单元素

Forms 在Svelte中验证动态生成的表单元素,forms,svelte,Forms,Svelte,我有一个表单,有两种动态生成的输入类型。下面是我的苗条档案。我正在寻找提交表单时验证表单的最佳方法示例。表单元素还应该在输入数据发生更改时验证数据。因此,它是双向验证,即表单提交和输入值更改 表单生成器。苗条: 从“进程”导入{title}; 从“svelte”导入{onMount}; 从“./Field.svelte”导入字段; 设arrFields=[]; 导出let formsubmitted=false; 导出let计数器=0; 设isValid=false; onMount(()=>

我有一个表单,有两种动态生成的输入类型。下面是我的苗条档案。我正在寻找提交表单时验证表单的最佳方法示例。表单元素还应该在输入数据发生更改时验证数据。因此,它是双向验证,即表单提交和输入值更改

表单生成器。苗条:


从“进程”导入{title};
从“svelte”导入{onMount};
从“./Field.svelte”导入字段;
设arrFields=[];
导出let formsubmitted=false;
导出let计数器=0;
设isValid=false;
onMount(()=>{
//获取json数据并生成arrField
}); 
函数handleSubmit(事件){
//重置有效性标志
isValid=true;
formsubmitted=true;
计数器=计数器+1;
如果(有效){
警报(“这将提交表格”);
}
否则{
event.preventDefault();
}
{#每个arrFields都是arrField}
{/每个}
字段中。苗条:


从“./field text.svelte”导入字段文本;
从“./field phone.svelte”导入Fieldphone;
提交出口许可证;
出口许可证有效;
出口出租柜台;
导出let fieldparams=[];
导出let sFieldType=fieldparams[“系统”][“类型”];
{#如果sFieldType=='item\u formfield\u text'}
{:如果sFieldType=='item\u formfield\u phone'},则为else
{/if}
字段文本中。苗条:


让errormessage=“”;
导出let fieldparams=[];
提交出口许可证;
export let isValid=true;
让输入_blur=false;
出口出租柜台;
//生成输入数据的代码。。。
//在计数器更改时执行验证
$:计数器,验证();
导出函数验证(){
errormessage=“”;
var值=输入值;
如果(表单提交| |输入|模糊)
{
输入_blur=false;
var模式=/^([a-zA-Z]{3,30})$/;
如果(值==“”){
errormessage=''+ValidationEmpty+
'';
isValid=false;
}
如果(!模式测试(值)){
errormessage=''+验证正确+
'';
isValid=false;
} 
否则{
errormessage=“”;
}
}
否则{
errormessage=“”;
}
}
{LabelText}
{input_blur=true;validate();}}>
{@html错误消息}
现场电话的类似代码。苗条

验证不起作用。我使用计数器将表单提交的状态传递给子组件,并认为这不是一个好的解决方案。无论何时更改计数器,都会调用验证函数。测试了几种绑定子验证方法的方法,但都不起作用。我需要一份表格验证的工作副本。如果有人能举一个工作场景的例子,我将不胜感激。多谢各位