提问人:sushi 提问时间:8/17/2022 最后编辑:Barmarsushi 更新时间:8/17/2022 访问量:36
JS Onchange 处理前的显示值
JS Onchange display value before processing
问:
我有一个输入元素。用户选择一个选项后,我检查所选的选项。如果它比我预期的要大,我会打开一个框,询问用户是否确定他们选择了正确的选项。这只是一个警告,因此我不会重置该值或阻止用户选择这些选项。form
select
alert
目前,这会导致 首先显示,然后在他们点击后更改网页上的选项。alert
OK
在事件期间处理选择之前,如何获取元素中的值以显示选择?select
onchange
mySelectElement.onchange = function() {
if(mySelectElement.value >= 1000) {
alert("Are you sure you can eat that many apples?");
}
// else nothing, less than 1000
};
答:
0赞
imvain2
8/17/2022
#1
有几个解决方案,一个不使用警报。您可以使用模态库,或者直接输出到 dom。
如果必须使用警报,请将其包装在 setTimeout 中,以便延迟。
let select = document.querySelector("select");
select.addEventListener("change",function(){
if(select.value > 1){
setTimeout(function(){alert("Alert");},100);
}
});
<select ><option value="0">A</option><option value="3">3</option></select>
评论
0赞
imvain2
8/17/2022
@Barmar,我理解这个问题,因为当用户在选择中进行选择时,他们看不到所选选项,直到他们单击警报上的“确定”按钮之后。因此,这将向用户显示所选选项,然后等待一小段时间,然后弹出警报。
评论