Laravel 从 javascript 更新输入字段时,livewire 模型不起作用?
Laravel livewire model is not working when updating input field from javascript?
我有一个文本输入字段,如果我在其中输入时自己更新它,它会很好用,但是,我需要的是用来自 javascript 的数据填充此输入字段,而不是用户.
这是我的输入框
<input type="text" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="images" wire:model="images">
这就是我在输入字段中键入“123”时会发生的情况,我得到的是输入字段的值:
然而,当我使用 javascript、document.getElementById("images").value = "Hello"
更新它时
输入字段填充了新数据:
但是它不会进行新的获取调用来获取数据,最后一个是在没有 javascript...
的情况下插入的“123”数据
知道从 javascript 更新输入值后如何获取数据吗?
您可以在 livewire 中使用内联脚本填充输入字段
喜欢:
document.addEventListener('livewire:load',function ()
{
@this.images = "Hello";
});
<input type="text" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="images" wire:model="images">
使用javascript更改输入值后,可以触发输入事件使livewire更新模型。
document.getElementById("images").value = 'Hello';
document.getElementById("images").dispatchEvent(new Event('input'));
如果您使用 wire:model.lazy,您应该使用 'change' 事件而不是 'input'
<script>
document.addEventListener('livewire:load', function () {
@this.set('images','Hello');
//console.log('Hello');
});
</script>
制作一个public属性名称'images,在挂载中启动它。我希望它能解决你的问题。让我知道。
我有一个文本输入字段,如果我在其中输入时自己更新它,它会很好用,但是,我需要的是用来自 javascript 的数据填充此输入字段,而不是用户. 这是我的输入框
<input type="text" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="images" wire:model="images">
这就是我在输入字段中键入“123”时会发生的情况,我得到的是输入字段的值:
然而,当我使用 javascript、document.getElementById("images").value = "Hello"
更新它时
输入字段填充了新数据:
但是它不会进行新的获取调用来获取数据,最后一个是在没有 javascript...
的情况下插入的“123”数据知道从 javascript 更新输入值后如何获取数据吗?
您可以在 livewire 中使用内联脚本填充输入字段 喜欢:
document.addEventListener('livewire:load',function ()
{
@this.images = "Hello";
});
<input type="text" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="images" wire:model="images">
使用javascript更改输入值后,可以触发输入事件使livewire更新模型。
document.getElementById("images").value = 'Hello';
document.getElementById("images").dispatchEvent(new Event('input'));
如果您使用 wire:model.lazy,您应该使用 'change' 事件而不是 'input'
<script>
document.addEventListener('livewire:load', function () {
@this.set('images','Hello');
//console.log('Hello');
});
</script>
制作一个public属性名称'images,在挂载中启动它。我希望它能解决你的问题。让我知道。