如何在livewire datepicker中设置属性?

时间:2020-08-08 04:46:37

标签: laravel-livewire

在livewire 1.3应用中,查看https://laravel-livewire.com/docs/alpine-js上的DatePicker示例 选择日期后,我看不到如何设置自定义参数以及如何使用它? 我需要将隐藏的输入格式化日期保存在db中。 我在属性中添加了1个参数:

<x-date-picker
    wire:model="start_date"
    id="start_date"
    autocomplete="off"
    attributes="{hidden_element:'hidden_start_date'}"
/>

以及在resources / views / components / date-picker.blade.php中: 并尝试读入日期选择事件:

<div>
    <input
        x-data
        x-ref="input"
        x-init="new Pikaday({
            field: $refs.input,
            format:'M/D/YYYY',
            onSelect: function() {
                console.log(this.el); // that shows html code of datepicker
                console.log('getAttribute:');
                console.log(this.el.getAttribute('hidden_element')); // shown null
                
                $( this.el.getAttribute('hidden_element') ).val( dateToMySqlFormat(this._d) );
                // code above does not work !
            }
        })"
        type="text"
        {{ $attributes }}
    >
</div>

哪种方法有效?

谢谢!

1 个答案:

答案 0 :(得分:0)

我通过以下决定做出决定:

<x-date-picker
    wire:model="start_date"
    id="start_date"
    autocomplete="off"
    hidden_element="hidden_start_date"
/>

                                            

以及在我的组件中:

<div>
    <input
        x-data
        x-ref="input"
        x-init="new Pikaday({
            field: $refs.input,
            format:'M/D/YYYY',
            onSelect: function() {
{{--                console.log(this);--}}
                $('#'+$el.getAttribute('hidden_element')).val( dateToMySqlFormat(this._d) );
            }
        })"
        type="text"
        {{ $attributes }}
    >
</div>