Dcatadmin框架自定义前端验证规则需要刷新页面才会生效

1. 运行环境

1). 当前使用的 Laravel 版本?

Laravel Framework 8.83.27

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.4.3

3). 当前系统

Windows 10

4). 业务环境

开发环境

2. 问题描述?

我在/app/Admin/bootstrap.php文件中写了一个自定义前端验证规则,在控制器的form方法中使用,但是在使用过程中,需要手动刷新页面才会生效,通过表格的新增按钮或者修改按钮点击到表单中不生效,要进入表单后手动刷新页面才会生效

Field\Text::macro('decimal', function (int $length = 1, ?string $error = null) {
    // 前端验证逻辑扩展
    Admin::script(
        <<<'JS'
Dcat.validator.extend('decimal', function ($el) {
    return !/^\d+(\.\d{1,3})?$/.test($el.val());
});
JS
    );

    return $this->attribute([
        'data-validation' => 'decimal',
        'data-decimal'       => $length,
        'data-decimal-error' => str_replace(
            [':attribute', ':decimal'],
            [$this->label, $length],
            $error ?: "只能输入小数值"
        ),
    ]);
});

这是我写在bootstarp.php中的验证方法,在form方法中使用,$form->text(‘price’)->decimal()->required();

3. 您期望得到的结果?

在点击按钮进入表单后,在字段中输入值则验证,而不需要手动刷新页面

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1
porygonCN

有没有可能 你写的哪里有问题 也没贴代码 不知道你咋写的

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!