2010-07-14 92 views
2

我有一個表單,我想根據輸入的文本在文本字段中顯示div。我使用的腳本在我的最新版本的chrome上工作得很好,但它在IE或我的任何成員browswers上都不起作用。他們碰到了什麼是錯誤的腳本?在文本條目中顯示div

<script> 
$('document').ready(function(){ 
$('#gname').change(function() { 
($(this).val() == "NBA 2k10") ? 
$('#number').slideDown('fast') : $('#number').hide(); 
}) 
}); 
</script> 
+1

可能與IE如何觸發更改事件有關。 – Tesserex 2010-07-14 02:00:10

+0

你的html中有DOCTYPE聲明嗎?如果!DOCTYPE丟失,IE將不會正確解釋代碼。 – Enrique 2010-07-14 02:02:37

+0

doc type is there,我找不到這個 – 2010-07-14 02:07:16

回答

2

$("document")是不是在其他瀏覽器的有效選擇,你需要$(document),這樣的整體:

$(document).ready(function(){ 
    $('#gname').keyup(function() { //probably want keyup instead of change here 
    if ($(this).val() == "NBA 2k10") 
     $('#number').slideDown('fast') 
    else 
     $('#number').hide(); 
    }); 
}); 

You can test it here

$(document).ready(function(){也可以是$(function(){$("document")不起作用,因爲它正在尋找<document>元素,該元素不存在。

if/else變化只是爲了使它有點更清潔的整體,它有點偏好,但總體來講你的條件語句應該不會有副作用,這不是他們的本意。你可以這樣使用它們,但最好是明確的,至少在我看來。

+0

感謝您的響應兄弟,但這不起作用 – 2010-07-14 02:05:01

+1

@John - 我添加了一個演示,以顯示它的行動,你可能*希望*是'keyup'事件,而不是'change'(它不會發射直到你離開文本框)。這可能是你目前的問題,當你認爲它發生'change'事件不會觸發:) – 2010-07-14 02:10:12

+0

Keyup,工作。美麗。讓我知道你的Goodiiz.com會員ID是什麼,我會寄給你3個goodiiz芯片幫助我。 – 2010-07-14 02:13:30

0

只有在輸入失去焦點後,纔可能在IE中觸發。如果您想在對輸入焦點丟失之前檢測文本更改(跨瀏覽器),請嘗試按鍵或按鍵。

$(document).ready(function(){ 
    $('#gname').keypress(function() { 
    if ($(this).val() == "NBA 2k10") 
     $('#number').slideDown('fast') 
    else 
     $('#number').hide(); 
    }); 
});