Подтвердить что ты не робот

Как выбрать ввод по значению с помощью jQuery 1.4.3 и выше

С jQuery 1.4.2 и многими предыдущими версиями можно выбрать такие входы:

$('input[value=test]')

Но с 1.4.3 и выше этот селектор не работает = ( Есть ли способ выбрать по значению в новых версиях jQuery?

4b9b3361

Ответ 1

Итак, решение состоит в том, чтобы добавить это к js:

$('input').bind('keyup change',function() {
    $(this).attr('value',this.value)
});

Демо - http://jsfiddle.net/VwVhD/28/

ОБНОВЛЕНИЕ (21.02.2013)

Спустя годы я придумал это:

jQuery('input,textarea').live('keyup change', function(e) {
    var ignore_codes = [16,9,33,34,36,35,45,38,40,37,39];//arrows and others
    if (e.keyCode && jQuery.inArray(e.keyCode, ignore_codes) < 0)//ignore this keyUps to let this keys work as expected
    {
        var cp = getCP(this);
        jQuery(this).attr('value', this.value);
        setCP(this,cp);
    }
    });
    function setCP(ctrl, pos){
        if(ctrl.setSelectionRange) {
            ctrl.focus();
            ctrl.setSelectionRange(pos,pos);
        } else if (ctrl.createTextRange) {
            var range = ctrl.createTextRange();
            range.collapse(true);
            range.moveEnd('character', pos);
            range.moveStart('character', pos);
            range.select();
        }
    }

Ответ 2

$('input[value="test"]') Должен работать нормально...

ИЗМЕНИТЬ

Вы можете попробовать использовать инструкции if, например:

$("input").keyup(function(e) { 
    if (this.value == 'foo'){
        $(this).css('backgroundColor','red');
    }
    else if (this.value == 'bar'){
        $(this).css('backgroundColor','green');
    }
    else $(this).css('backgroundColor','white');
});

http://jsfiddle.net/ajthomascouk/HrXVS/

Ответ 3

Насколько я могу судить, в новых версиях jQuery вы можете выбирать элементы INPUT по их атрибуту "значение", но не по текущему свойству .value.

Когда значение изменяется путем вызова .val(), изменения собственного значения JS. или также путем прямого ввода пользователем, атрибут HTML не изменяется. В предыдущих версиях селектора ссылались на текущее значение, а теперь они правильно ссылаются на атрибут HTML.

Вы можете выбрать текущее значение с помощью этого кода:

$('input').filter(function() { return this.value == 'test' });

Ответ 4

В соответствии с документацией он должен работать просто отлично

http://api.jquery.com/attribute-equals-selector/

вам нужно использовать кавычки, чтобы окружить значение