2013-07-02 28 views
1

我正在運行Django 1.5並使用Dajax/Dajaxice異步更新表單。該表單只是一個對象(text feild)的描述。該字段的值始終顯示並顯示爲可編輯的textarea。 當形式呈現,我使用javascript分配onchange事件的HTML表單:Jquery事件沒有輸入空白輸入

$('#form_id').change(function(event) { 
       Dajaxice.appname.description_form(Dajax.process, 
        {'form':$('#form').serialize(true), 
        'pk':$('#parent_div').attr('pk')} 
        ) 
      }); 

這適用於任何類型的輸入,除了空白輸入。如果textarea不包含任何文本,似乎事件不會被觸發;我能做些什麼來允許空白輸入來觸發事件?

這不僅僅是onchange事件,我試圖給其他人如keyup()等賦予相同的結果(除了空白輸入以外全部功能)。

澄清:

由沒有輸入,我的意思是 ''(沒有字符)

的輸入 '' 觸發器仍。

+0

您可能想要使用'.blur()',那麼每次輸入失去焦點時都會觸發。 – tymeJV

+0

實際上做了改變嗎?如果沒有任何變化,變更不會觸發,您需要離開該字段。如果沒有價值發送,你打電話的方法是否會做任何事情? 「#form_id」實際上應該是「element_id」嗎? – epascarello

回答

0

據我所知,「輸入」不是你想要使用的事件。由於「輸入」類似於「變」,它往往會產生不好的結果,當你的字符串接近0字符,使用KEYUP代替
試試這個:

$('#form_id').bind('keyup', function (e) {  
    Dajaxice.appname.description_form(Dajax.process, 
     {'form':$('#form').serialize(true), 
      'pk':$('#parent_div').attr('pk')} 
    ) 
}); 
0

我記得簡要之前遇到此,但有些武斷改變了解決它。

最簡單的形式,jQuery的.change()函數應該觸發一個空輸入。看到這個簡單的例子,通過在輸入輸入文本,將其清除,並再次按Tab鍵出來:simple .change() demo

$('#search').change(function(event){alert('Changed!');}); 

如果你能對你的代碼提供更多的背景,也許我們能弄清楚是什麼導致.change()失敗。

+3

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – copeg

+0

謝謝copeg。正如你正確指出的那樣,當我有足夠的聲望時,我只能評論其他人的帖子,而我沒有,因爲我只是昨天才報名。 –