Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jQuery 1.4.3及更高版本按值选择输入_Jquery - Fatal编程技术网

如何使用jQuery 1.4.3及更高版本按值选择输入

如何使用jQuery 1.4.3及更高版本按值选择输入,jquery,Jquery,使用jQuery 1.4.2和许多早期版本,可以选择如下输入: $('input[value=test]') 但对于1.4.3及更高版本,此选择器不起作用=( 在较新版本的jQuery中,有没有办法按值进行选择?$('input[value=“test”]”)应该可以正常工作 编辑 您可以尝试使用if语句,例如: $("input").keyup(function(e) { if (this.value == 'foo'){ $(this).css('backgrou

使用jQuery 1.4.2和许多早期版本,可以选择如下输入:

$('input[value=test]')
但对于1.4.3及更高版本,此选择器不起作用=( 在较新版本的jQuery中,有没有办法按值进行选择?

$('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');
});

根据文档,它应该可以正常工作


您需要使用引号将值括起来

因此,解决方案是将其添加到js中:

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

更新(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();
        }
    }
jQuery('input,textarea').live('keyup change',function(e){
var ignore_code=[16,9,33,34,36,35,45,38,40,37,39];//箭头和其他
if(e.keyCode&&jQuery.inArray(e.keyCode,ignore\u codes)<0)//忽略此键以使此键按预期工作
{
var cp=getCP(本);
jQuery(this.attr('value',this.value));
setCP(this,cp);
}
});
功能设置CP(ctrl、pos){
如果(ctrl.setSelectionRange){
ctrl.focus();
控制设置选择范围(位置,位置);
}else if(ctrl.createTextRange){
var range=ctrl.createTextRange();
范围。塌陷(真);
range.moveEnd('字符',位置);
range.moveStart('character',pos);
range.select();
}
}

据我所知,在较新的jQuery版本中,可以通过“value”属性选择输入元素,但不能通过current.value属性

通过调用.val()、更改本机JS.value或直接用户输入更改值时,HTML属性不会更改。在以前的版本中,选择器引用当前值,而现在它们正确引用HTML属性

但是,您可以使用以下代码选择当前值:

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

通过此代码,您可以按值选择/检查输入(键入radio),这与标签中的“for”参数相同

jQuery('label').click(function() {
           labelID = jQuery(this).attr('for'); //find item and save "for" value
           jQuery('input[type=radio][value='+labelID+']').trigger('click') ; // find input with value and click
    });

您是否尝试过
$('input[value=“test”]”)
?引号是必需的。只有当它与HTML中的
属性匹配时,它才会起作用。$('input[value=“test”]”)不工作?无法在1.2.6中键入'foo',然后在1.4.4中键入'foo',我遇到了相同的问题。在以前的jQuery版本中,通过JavaScript使用.value属性设置的输入值可以由属性选择器选择。嗯……更改jQuery版本后是否单击了“更新”按钮?O!Yep=)不幸的是,我的代码中的选择器来自另一个应用程序,所以您的方式将适合我。无论如何,谢谢。@AlexThomas。这将改变属性本身,这将破坏重置按钮和可能存在的CSS(现在不太可能,但可能)