2011-12-31 108 views
1

为什么当我给输入字段type = hidden时,这不起作用?当输入字段被隐藏时,警报会给我提供我想要的ID代码。从隐藏字段获取值

<input id="scanID" name="scanID" type="hidden"> 

$(document).ready(function(){ 
    $("#scanID").keypress(function(e){ 
    //key code 13 is "enter", 
     if(e.keyCode==13){ 
       //print out the barcode 
      alert($("#scanID").val()); 
        //clear the input field for next scan 
      $("#scanID").val(''); 
        //kill the "enter" event 
      return false; 
      } 
    }); 
}); 
+0

没有分配给隐藏的输入值。因此它没有显示任何价值。你在哪里分配价值? – Virendra 2011-12-31 09:01:11

+0

用扫描仪扫描我的ID,并尝试这样的:\t \t如果(e.keyCode == 13){ \t \t \t //打印出条形码 \t \t \t VAR测试= $( '#scanID')VAL。 (); alert(test); 没什么好开心的 – dymo 2011-12-31 09:03:34

+0

你的元素是隐藏的,因此它永远不会有按键不会发生在它上面。 – Virendra 2011-12-31 09:07:26

回答

2

这是因为隐藏的元素无法获得焦点,因此keypress事件永远不会发生。你应该使用不同的输入类型。

另一种解决方案是使用正常输入,并使用display: nonevisibility: hidden它与CSS。

+0

我试过了,没有结果。 – dymo 2011-12-31 08:52:11

+0

显示器没有为我工作,谢谢:) – 2014-01-28 15:41:09

2

可以按键事件添加到您想要的文件:

<input id="scanID" name="scanID" type="hidden" value="yourValue"> 

$(document).ready(function(){ 
     $(this).keypress(function(e){ 
     //key code 13 is "enter", 
      if(e.keyCode==13){ 
        //print out the barcode 
       alert($("#scanID").val()); 
         //clear the input field for next scan 
       $("#scanID").val(''); 
         //kill the "enter" event 
       return false; 
       } 
     }); 
    }); 
+0

但是,然后每当他按下输入,无论它会触发它。 – 2011-12-31 08:54:31

+0

这个解决方案给了我一个警报但没有值 – dymo 2011-12-31 08:55:28

+0

@dymo mgraph 2011-12-31 08:57:56