按值过滤输入

时间:2011-11-11 12:55:51

标签: javascript jquery

我有像这样的HTML结构

<div class="qn-block">
    <a href="#" class="remove"></a>
    <input type="text" class="quantity-number" name="quantity-number" value="2" />
    <a href="#" class="add"></a>
    <a href="#" class="refresh-q">Refresh</a>
</div>

对于值为&gt;的输入1我必须禁用“.refresh-q”。对于值为1的输入,禁用“.refresh-q”和“.remove”。 我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

为了禁用一个锚,您可以定义一个返回false的click处理程序:

function disableAnchor() {
    return false;
}

但你也可以隐藏它或其他什么。

然后:

$('.quantity-number').each(function() {
    var value = parseInt($(this).val(), 10);
    if (isNaN(value)) {
        return;    
    }

    if (value > 1) {
        $(this).siblings('.refresh-q').addClass('disabled').click(disableAnchor);
    } else if (value === 1) {
        $(this).siblings('.refresh-q, .remove').addClass('disabled').click(disableAnchor);

    }
});

答案 1 :(得分:0)

试试这个。你无法禁用链接,所以我只是隐藏了它们。有一些替代方法可以简单地隐藏元素,例如完全删除A元素,或者在单击时返回false,如果您更愿意使用它们。

$(".quantity-number").change(function() {
    var val = $(this).val()
    if (val = 1) {
        $(this).siblings(".refresh-q, .remove").hide();
    }
    else if (val > 1) {
        $(this).siblings(".refresh-q").hide();
    }
});