使用 JavaScript 从 Laravel 中的动态输入中获取旧值?

Posted

技术标签:

【中文标题】使用 JavaScript 从 Laravel 中的动态输入中获取旧值?【英文标题】:Get old value from dynamic input in Laravel with JavaScript? 【发布时间】:2021-04-10 02:20:49 【问题描述】:

我想从 Laravel 的动态输入中获取旧值。如果是常规输入,我只需要 old ('name') 。但是如果输入是动态的呢?

查看

<tr>
    <td>
        <input type="text" name="name_progress[]"
               value=" old('name_progress[]') "
               placeholder="Enter name" class="form-control"/>
    </td>
    <td>
        <input type="text" name="payment_percentage[]"
               value=" old('payment_percentage[]') "
               placeholder="Enter % invoice" class="form-control"/>
    </td>
    <td>
        <a type="button" class="btn btn-danger remove-tr">-</a>
    </td>
</tr>

JavaScript

<script type="text/javascript">
    $("#add-btn").click(function () 
        var tr = '<tr>' +
            '<td>' +
            '<input type="text" name="name_progress[]" ' +
            'placeholder="Enter name" class="form-control" /></td>' +
            '<td><input type = "text" name = "payment_percentage[]" ' +
            'placeholder = "Enter per_invoice" class = "form-control" />' +
            '</td>' +
            '<td><a type="button" class="btn btn-danger remove-tr">-</a></td>' +
            '</tr>';
        $("#dynamicProgress").append(tr);
    );
    $(document).on('click', '.remove-tr', function () 
        $(this).parents('tr').remove();
    );
</script>

【问题讨论】:

【参考方案1】:

由于 name_progresspayment_percentage 字段是数组,您可以简单地循环遍历旧的输入值。

@forelse (old('name_progress', []) as $i => $name_progress)
    <tr>
        <td>
            <input type="text" name="name_progress[]" value=" $name_progress " placeholder="Enter name" class="form-control" />
        </td>
        <td>
            <input type="text" name="payment_percentage[]" value=" old('payment_percentage')[$i] " placeholder="Enter % invoice" class="form-control" />
        </td>
        <td>
            <a type="button" class="btn btn-danger remove-tr">-</a>
        </td>
    </tr>
@empty
    <tr>
        <td>
            <input type="text" name="name_progress[]" placeholder="Enter name" class="form-control" />
        </td>
        <td>
            <input type="text" name="payment_percentage[]" placeholder="Enter % invoice" class="form-control" />
        </td>
        <td>
            <a type="button" class="btn btn-danger remove-tr">-</a>
        </td>
    </tr>
@endforelse

如果old('name_progress') 为空或null,将显示具有空值的初始字段。

【讨论】:

以上是关于使用 JavaScript 从 Laravel 中的动态输入中获取旧值?的主要内容,如果未能解决你的问题,请参考以下文章

如何从刀片模板中的 Javascript 文件重定向 Laravel 路由

将 JavaScript 数组从视图传递到 Laravel 控制器

Laravel - Bootstrap 的 JavaScript 需要 jQuery 错误

如何使用 axios 将数组从 javascript 传递到 laravel 控制器

在 laravel 刀片路由中使用 JavaScript 变量

在 Laravel 中使用 Ajax/jQuery 从数据库中获取数据