使用数组字段名进行Javascript表单验证

我有一个将验证错误映射到表单域的函数。

export function mapErrorsToForm($form, errorData) {
    $form.find(':input').each(function() {
        var fieldName = $(this).attr('name');
        var $error = $('<div class="invalid-feedback"></div>');
        $error.html(errorData.errors[fieldName]);
        $(this).addClass('is-invalid');
        $(this).after($error);
    });
}

errorData由ajax响应填充,例如:

error: function (jqXHR) {
    var errorData = JSON.parse(jqXHR.responseText);
    mapErrorsToForm($form, errorData);
}

我遇到的问题是有些字段名有数组,例如密码确认写成这样:

<div class="form-row form-group">
    <div class="col">
        <input class="form-control form-control-lg js-password" type="password" name="plainPassword[first]" placeholder="Password">
    </div>
</div>
<div class="form-row form-group">
    <div class="col">
        <input class="form-control form-control-lg js-confirm-password" type="password" name="plainPassword[second]" placeholder="Confirm Password">
    </div>
</div>

如何更新mapErrorsToForm函数,使其在字段名称中包含数组的字段中添加验证错误?

转载请注明出处:http://www.hhy777.com/article/20230526/2542307.html