gpt4 book ai didi

javascript - 在 alpine.js 中单击事件后触发更改事件

转载 作者:行者123 更新时间:2023-12-03 07:08:07 24 4
gpt4 key购买 nike

在以下示例中,当单击选择元素并更改值时,textarea 值设置为空。
我也有更改选择值的按钮,但这不会触发更改事件并将 textarea 值设置为空。

<div x-data="{ select : 1, textarea : 'test' }">
<div>
<button x-on:click="select = 1">One</button>
<button x-on:click="select = 2">Two</button>
<button x-on:click="select = 3">Three</button>
</div>

<div>
<select name="test" x-model="select" x-on:change="textarea = ''">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>

<textarea name="foobar" x-model="textarea">test</textarea>
</div>
我可以通过更新每个按钮上的点击事件来完成这项工作,如下所示。
<button x-on:click="select = 1; textarea = ''">One</button>
有什么办法可以触发select上的change事件,不管是按钮触发还是直接改变select值?

最佳答案

x-model将更新值而不触发“更改”事件。
在您的情况下,我假设您想要“每当 select 更改时,将 textarea 值重置为 ''”。
您可以使用 x-init$watch('select', () => { textarea = '' }) .作为奖励,您不需要 x-on:change="textarea = ''"<select>不再。
完整的例子是:

<div
x-data="{ select : 1, textarea : 'test' }"
x-init="$watch('select', () => { textarea = '' })"
>
<div>
<button x-on:click="select = 1">One</button>
<button x-on:click="select = 2">Two</button>
<button x-on:click="select = 3">Three</button>
</div>

<div>
<select name="test" x-model="select">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>

<textarea name="foobar" x-model="textarea">test</textarea>
</div>

关于javascript - 在 alpine.js 中单击事件后触发更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62963333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com