如何在显示之前更改 x-bind:value - Alpine JS
How to change x-bind:value before displaying - Alpine JS
<div x-data="{ date : false }">
<input type="date" name="dateOne" id="dateOne" x-model="date">
<input type="date" name="dateTwo" id="dateTwo" x-bind:value="date">
</div>
现在,我该如何更改#dateTwo,所以一旦#dateOne 发生更改,我会提前一天显示#dateTwo,我已经知道创建一天并在JavaScript 中再添加一天。但是我的问题在于如何将它与Alpine JS粘合在一起的逻辑。
场景:有一个事件有开始和结束日期,但我想强制用户至少提前一天选择。所以我的想法是,一旦用户在第一个输入上选择了一天,第二个输入上的 x-bind 就会添加并显示提前一天
提前致谢。
model/data 缺少几个值,我的方法与你的有点不同,我认为我们第一次约会不需要 x-model
,更有意义的是在第二次约会中使用。
以下是针对您的用例的快速而肮脏的解决方案:
<div x-data="{
dateStart: null,
dateEnd: null,
initEndDate: function(dateStartInputValue) {
const selectedDate = new Date(dateStartInputValue);
const dateEndInitValue = selectedDate.setDate(selectedDate.getDate() + 1);
this.dateEnd = new Date(dateEndInitValue).toISOString().split('T')[0];
}
}">
<label for="start">
Start date:
<input
name="dateStart"
type="date"
@change="dateStart = event.target.value; initEndDate(event.target.value)"
/>
</label>
<label for="dateEnd" x-show="dateStart">
– End date:
<input
name="dateStart"
type="date"
x-model="dateEnd"
@change="dateEnd = event.target.value;"
/>
</label>
</div>
这是 sandbox.
中的代码
祝你好运!
<div x-data="{ date : false }">
<input type="date" name="dateOne" id="dateOne" x-model="date">
<input type="date" name="dateTwo" id="dateTwo" x-bind:value="date">
</div>
现在,我该如何更改#dateTwo,所以一旦#dateOne 发生更改,我会提前一天显示#dateTwo,我已经知道创建一天并在JavaScript 中再添加一天。但是我的问题在于如何将它与Alpine JS粘合在一起的逻辑。
场景:有一个事件有开始和结束日期,但我想强制用户至少提前一天选择。所以我的想法是,一旦用户在第一个输入上选择了一天,第二个输入上的 x-bind 就会添加并显示提前一天
提前致谢。
model/data 缺少几个值,我的方法与你的有点不同,我认为我们第一次约会不需要 x-model
,更有意义的是在第二次约会中使用。
以下是针对您的用例的快速而肮脏的解决方案:
<div x-data="{
dateStart: null,
dateEnd: null,
initEndDate: function(dateStartInputValue) {
const selectedDate = new Date(dateStartInputValue);
const dateEndInitValue = selectedDate.setDate(selectedDate.getDate() + 1);
this.dateEnd = new Date(dateEndInitValue).toISOString().split('T')[0];
}
}">
<label for="start">
Start date:
<input
name="dateStart"
type="date"
@change="dateStart = event.target.value; initEndDate(event.target.value)"
/>
</label>
<label for="dateEnd" x-show="dateStart">
– End date:
<input
name="dateStart"
type="date"
x-model="dateEnd"
@change="dateEnd = event.target.value;"
/>
</label>
</div>
这是 sandbox.
中的代码祝你好运!