2013-05-06 64 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"); 
    } 
});