2014-11-24 53 views
0

每次更改#my_form中的輸入時,我想隱藏#result。我試過,但它不工作每次更改指定表單的輸入時都隱藏一個字段

$('#my_form .input').each(function(){ 
    $(this).change(function(ev) { 
    $('#result').hide(); 
    }); 
}); 

編輯:我還有一個按鈕,顯示#result

編輯2:它的工作原理與但它並不適用於select_tag工作

即使如果我這樣做:

$('#my_form input').on('input | change | keyup | keydown | select', function(){ 
    $("#result").hide(); 
}) 
+2

嘗試刪除'.':'$( '#my_form輸入')',而不是'$('# my_form .input')'(除非他們有一個名爲'input'的類) – Joe 2014-11-24 14:06:06

+0

沒有什麼意義,因爲它會在第一次更改後隱藏'#result',並且不再顯示它。你可以發佈HTML嗎? – dfsq 2014-11-24 14:07:24

+0

那你想要什麼?究竟何時隱藏和什麼時候顯示? – Litestone 2014-11-24 14:18:12

回答

-1

爲什麼使用$。每個功能的同時,你可以處理這樣的事件:

$('#my_form .input').on('input | change | keyup | keydown', function(){ 
 
    $("#result").hide(); 
 
})
使用$。對()更好,使用「輸入」 HTML5事件觸發whene場發生變化,也「變化,KEYUP,的keydown」可以肯定的是,事件觸發如果瀏覽器不支持輸入事件,還有'更改'事件有一些錯誤,它不會在所有情況下觸發,但'輸入'事件適用於任何類型的用戶行爲(例如ctrl + v,鼠標右鍵單擊>過去,甚至鼠標輪數輸入)

+2

嗨,有禮貌地我想問代碼是否滿足需要,downvote的原因是什麼?它捕獲輸入,更改,keyup和keydown事件以隱藏結果 – 2014-11-24 14:29:53

+1

我真的不明白爲什麼downvotes – Sn0opr 2014-11-24 14:51:10

+0

也許是因爲你讓.input(類),而不是告訴我應該使用「輸入」而不是「 .input「:) – Charlon 2014-11-24 14:59:52

0

您可以將某些這樣的事

$(".input").on("input", function() { 
    alert("Value changed!"); 
    $("#result").hide(); 
}); 

DEMO

0

正如所提到的,如果你正在尋找附加到input元素,你不應該把一個點在它的前面,因爲這將尋找與輸入元素。

此外,您不需要循環並逐個將更改應用於每個input。你可以將它綁定在初始選擇器上。

最後,​​是因爲V1.7

$('#my_form input').on('change', function() { 
    $('#result').hide(); 
}); 

如果你想隱藏它時,按下任意鍵等等,而不僅僅是當輸入失去焦點jQuery中添加事件處理程序推薦的方式,您可以將多個事件處理程序,但他們應該由空間,沒有其他任何字符分隔(見前面的鏈接到文檔):

$('#my_form input').on('input change keyup keydown', function() { 
    $('#result').hide(); 
}); 
1

試試這個代碼:

$('#my_form .input').on('input,change,keyup,keydown,', function(){ 
    $("#result").hide(); 
}); 
1

試試這個 - 這是對DOM

// get the result element once  
var result = $('#result'); 
// declare a method to handle the input change once, not every time the event happens 
function input_changeHandler(event) { 
    result.hide(); 
} 
// bind the listener to your form (using more efficient selectors) 
$('#my_form').on('change,keyup', 'input, select, textarea', input_changeHandler); 

只是要小心的範圍多一點溫柔,因爲「結果」將全球。如果你用方法(閉包)包裝它,你會沒事的。

希望有幫助!

0

好一切上面一些事情,但我覺得作品甚至select_tags作品​​:

$('#simulation :input').on('input | change | select', function(){ 
    $("#result").hide(); 
}) 
相關問題