2013-11-25 87 views
0

我有一個輸入字段,用戶可以輸入文本,當他們鍵入內容時,它是有效的,圖像將出現。輸入錯誤的文字也一樣。檢測用戶是否沒有輸入任何東西/刪除輸入jQuery

我想在輸入字段中沒有任何內容時更改/刪除圖像。

這裏是我的代碼,但它似乎並不奏效:

$('#input_link').on('mouseout', function(){ 
    if($.trim($('#input_link').val().length = 0)){ 
     $('#status_image').attr('src', 'images/link_related/stand_by.png'); 
    } 
    }); 
+3

您需要使用雙'=',像''==否則你要分配,而不是比較。 – Sergio

+0

爲什麼mouseout?如果用戶把注意力集中在一起,那麼如果挖掘出來(這很常見),然後清空該領域? –

+0

我認爲'模糊'或'變化'事件是你真正需要的。只用鍵盤就可以在線填寫文本表單。 – Blazemonger

回答

4

試試:

$('#input_link').on('mouseout', function(){ 
    if(!$.trim(this.value).length){ 
     $('#status_image').attr('src', 'images/link_related/stand_by.png'); 
    } 
    }); 

您的修剪支架不合適,您正在使用賦值運算符而不是比較。我認爲mouseout可能不是一件好事,可以做你正在做的事情。根據您想要顯示圖像的時間使用keyupchange事件。

也許這就是你想要實現的。

$('#input_link').on('input keyup paste', function() { 
    var hasValue = $.trim(this.value).length; 
    $('#status_image').attr('src', function() { 
     return hasValue ? 'http://placehold.it/20/00ff00' : 'http://placehold.it/20/ff0000'; 
    }); 
}); 

Demo

+0

謝謝,完美的作品,再加上它更短。 – Sidetik

+0

@Sidetik你是否試圖改變形象,如果是這樣,我甚至有更短的選擇? – PSL

+0

是的,我試圖改變它。 – Sidetik

3

使用=====比較的東西,

if($.trim($('#input_link').val().length == 0)){' 

試試這個,

$('#input_link').on('mouseout', function(){ 
    if($.trim($('#input_link').val()).length == 0){ 
     $('#status_image').attr('src', 'images/link_related/stand_by.png'); 
    } 
    }); 
相關問題