gpt4 book ai didi

javascript - 无法获得与某些类 jQuery 最接近的元素

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:17 25 4
gpt4 key购买 nike

我有一个函数可以捕获输入是否已更改,然后如果值超过最大值,它会将值设置为最大值。所以你不能输入超过最大值的值。但是,如果您尝试这样做,我想显示一条错误消息,但我正在努力获取最接近的错误消息。这是我的代码;

$(document).on('keydown keyup', '.quantity input', function(e) {
var max = Number($(this).attr('max'));

if ($(this).val() > max) {
e.preventDefault();
$(this).val(max);
$(this).closest('.quant_warn').show();
} else if ($(this).val() < 1) {
e.preventDefault();
$(this).val(1);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="quantity">
<label>Quantity: </label>

<div class="increment">
<span></span><span></span>
</div>

<input type="text" value="1" min="1" max="10">

<div class="decrement">
<span></span>
</div>

<div class="quant_warn" style="display: none;">only 10 in stock</div>
</div>

最佳答案

由于 .quant_warn div 不是 input 的父级而是兄弟级,因此您需要使用 siblings() 而不是:

$(this).siblings('.quant_warn').show();

注意:当您跟踪使用输入时,使用 input 事件而不是 keydown keyup 会更有效。

$(document).on('input', '.quantity input', function(e) {
var max = Number($(this).attr('max'));

if ($(this).val() > max) {
e.preventDefault();
$(this).val(max);
$(this).siblings('.quant_warn').show();
} else if ($(this).val() < 1) {
e.preventDefault();
$(this).val(1);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="quantity">
<label>Quantity: </label>

<div class="increment">
<span></span><span></span>
</div>

<input type="text" value="1" min="1" max="10">

<div class="decrement">
<span></span>
</div>

<div class="quant_warn" style="display: none;">only 10 in stock</div>
</div>

关于javascript - 无法获得与某些类 jQuery 最接近的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51304847/

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