2013-05-06 53 views
2

我正在制作一个Web应用程序,其中用户必须输入多个必需的文本字段。为了通知用户这一点,据称他/她必须输入所有的粉红色文本字段。我给了他们通过这个粉红色的背景:(请注意,我使用jQuery UI控件微调)Javascript/jQuery基于值更改文本输入

$('input[type="text"]').spinner({min: 0}).css("background-color", "pink"); 

我所要做的,就是改变背景颜色为白色,当用户在外地。我这样做:

$('input[type="text"]').keyup(function() { 
    if ($(this).val().length !== 0) { 
     $(this).css("background-color", "white"); 
    } else{ 
     $(this).css("background-color", "pink"); 
    } 
}); 

这很好,但我也使用微调(和滑块)来更改文本字段的值。要做到这一点,我输入了这个:

$(document).click(function() { 
    if ($('input[type="text"]').val().length !== 0) { 
     $('input[type="text"]').css("background-color", "white"); 
    } else{ 
     $('input[type="text"]').css("background-color", "pink"); 
    } 
}); 

正如你可以想象,这没有奏效。如果一个文本字段中包含文本,则一旦文档被点击,所有文本字段将变为白色。我无法指定要使用此目标输入哪个文本。然后我尝试了.change()jQuery函数:

$('input[type="text"]').change(function() { 
    if ($(this).val().length !== 0) { 
     $(this).css("background-color", "white"); 
    } else{ 
     $(this).css("background-color", "pink"); 
    } 
}); 

然而,用户在此之后只有作品的点击后场,而当值通过旋转或滑动改变它什么都不做。有什么建议么? PS:我知道这有点啰嗦,但我想尽可能多地提供信息。

+0

触发keyup事件。 – adeneo 2013-05-06 19:35:14

回答

3

在现代浏览器中,使用oninput代替:{添加其他浏览器都支持太}改变与其他方法的价值时

$('input[type="text"]').on('input DOMAttrModified paste change',function() { 
    if ($(this).val().length !== 0) { 
     $(this).css("background-color", "white"); 
    } else{ 
     $(this).css("background-color", "pink"); 
    } 
});