如何使用jQuery 1.4.3及更高版本按值选择输入
使用jQuery 1.4.2和许多早期版本,可以选择如下输入:如何使用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
$('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(现在不太可能,但可能)