在文本输入上显示div

时间:2010-07-14 01:57:55

标签: jquery

我有一个表单,我想根据文本字段中输入的文本显示div。我正在使用的脚本在我最新版本的chrome上运行得很好,但它不适用于IE或我的任何成员浏览器。他们说的是脚本错了吗?

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

2 个答案:

答案 0 :(得分: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更改只是为了让它整体更清晰一点,这有点偏好,但一般来说,你的条件语句不应该有副作用,这不是他们的意图。你可以以这种方式使用它们,但最好是明确的,至少在我看来。

答案 1 :(得分:0)

只有在输入失去焦点后才可能在IE中触发。如果要在输入焦点丢失之前检测文本更改(跨浏览器),请尝试键盘或按键。

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