2013-02-01 69 views
3

我有一個帶有textarea的Bootstrap模式。當你打開模式時,textarea需要清除任何以前的文本,所以每次打開時都會清新。jQuery在清除textarea文本時刪除了textarea佔位符

問題是,第一次清除文本時,字段上的佔位符也會被刪除。

我正在使用$('textarea').val('')來清除文本。

http://jsfiddle.net/dkRS8/1/

+0

工作得很好,我在Chrome? – adeneo

+0

你使用什麼瀏覽器? – Rob

+0

似乎這是第一次罰款..但後來關閉一次..佔位符文本已經不存在..不知道這是他的意思..(按ESC鍵關閉該對話框) –

回答

2

您需要觸發blur事件的佔位符再次出現。它只在隱藏事件期間有效,所以當它再次出現時,佔位符被放回。

$('#modal').on('hide', function() { 
    $(this).find('textarea').val('').blur(); 
}); 

工作jsfiddle

編輯:我錯了,它似乎被他使用事件只是改變從showhide事件由馬丁在他的回答解釋作品,未經模糊shown

+0

這是爲我工作的唯一解決方案。 – BadHorsie

-1

其中的IE版本.. IE 10只支持佔位 ....所以不要嘗試在舊版本的IE這個THIG ....

但其他瀏覽器,如火狐,Chrome,歌劇......所有支持此屬性...

嘗試下面的代碼它會幫助你...

更新小提琴:http://jsfiddle.net/dkRS8/6/

$(document).ready(function() { 

    $('#modal').on('show', function() { 
     var ele = $(this).find('textarea'); 
     ele.val(''); 
    }); 

}); 
+0

你刪除了它的佔位符,那不是他想要的 – koopajah

+0

@koopajah:哦,好吧,我想他要求去掉佔位符......因爲他的代碼適合我......所以只有我想錯了...... – Pandian

2

當您註冊到「顯示」事件而不是「顯示」事件時,它確實有效。

$(document).ready(function() { 

    $('#modal').on('shown', function() { 
     $(this).find('textarea').val(''); 
    }); 

}); 
+0

+1。我想知道爲什麼? – Bema

+0

我在IE 9中試過這個...它不工作... – Pandian

+0

[bootstrap documentation](http://twitter.github.com/bootstrap/javascript。html#modals)對「顯示」事件說:「這個事件在用戶看到模式時會觸發(等待css轉換完成)​​。」 – Martin

0

嘗試

$(document).ready(function() { 
    $('#modal').bind('hide',function(){ 
     $('textarea',this).val('') 
    }) 
}); 

多瀏覽器,jQuery的UI事件STANDAR