2012-05-06 71 views
1

我想使用jQuery使輸入字段包含文本時具有不同的CSS。但是我不能在文本被刪除後將它改回。jQuery「change()」事件的相反之處是什麼?

當輸入字段中的文本被刪除時,是否有任何jQuery或Javascript事件會執行某些操作?

+0

您可以在'change'事件中檢查輸入內容(空vs非空)。 – pimvdb

回答

2

也許你只需要添加一些JavaScript代碼

var track = function() { 

    if($(this).val().length){ 
     $(this).removeClass('empty').addClass('full'); 
    } else { 
     $(this).removeClass('full').addClass('empty');    
    } 
} 

$('input').keyup(track);​ 

例如在:

http://jsfiddle.net/demee/63nz6/

+0

非常好的方法 – MaYaN

0

嘗試在文本刪除了此

$("selector").change(function() { 
    if($(this).val() == "") { 
    // your code 
    } 
}) 
+2

不,這將是模糊/重點! – adeneo

+0

也許我沒有說出正確的問題。我正在尋找一個事件,只有當文本從以前包含文本的輸入字段中刪除時纔會觸發。 – Proffesor

1

change()也將觸發。
你只需要檢查值來找出。

如需更直接的反應,您還應該處理keyupinput

+0

我知道,但是我需要它在文本輸入時做一件事,而當文本被刪除時,一件事情不一樣。 – Proffesor

+1

有沒有這樣的事件。 – SLaks

0
$("#element").change(function(){ 
    if($(this).val() == "") { 
    // do here 
    } 
}); 
1
$("#elementID").on('change', function() { 

    if (this.value=="") { 
     //no text is present 
    }else{ 
     //element contains something 
    } 

}); 

change將只對某些事件觸發,如模糊,考慮keyup更換change,使其更具活力。

0

如果檢查KEYUP的長度,那麼它會啓用作爲用戶在打字。

$(document).ready(function() { 
    $('#text').keyup(function() { 
     if($(this).val().length == 0) { 
      $(this).removeClass('filled_in'); 
     } else { 
      $(this).addClass('filled_in'); 
     } 
    }); 
});​ 

您可以在this jsFiddle的行動中看到它。

相關問題