2012-04-07 76 views
0

我试图只允许Google地图infowindow内的TextBox上的有效字符。 '按键'事件不是火。请帮我解决这个问题。TextBox按键事件不会在Google地图infowindow中触发

google.maps.event.addListener(drawingManager, 'polygoncomplete', function(polygon) { 

     var polylength=polygon.getPath().getArray().length; 
     var lastarray=polygon.getPath().getAt(polylength-1); 

      vertex=polygon.getPath().getArray(); 
     var contentString="<form id='myform'>Name:<input name='cname' id='cname' type='text' size='50'></input><br>Address<input name='addr' id='addr' type='text' size='50'></input><br><input type='button' value='submit' onclick='save();'></input></form>"; 
     infowindow = new google.maps.InfoWindow({ 
      content: contentString, 
      }); 
     infowindow.setPosition(lastarray); 
     infowindow.open(map); 
    }); 

$('input').bind('keypress', function(event){ 
       alert("pressed"); 
       var regex = new RegExp("^[a-zA-Z0-9 ]+$"); 
       var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
       if (!regex.test(key)) { 
        event.preventDefault(); 
        return false; 
       } 
     }); 

回答

2

当你bind荷兰国际集团事件侦听器input领域,input字段没有创建yet.You需要添加infowindowdomready事件侦听器,然后bindkeypress听众:

infowindow = new google.maps.InfoWindow({ 
    content: contentString, 
}); 
google.maps.event.addListener(infowindow , 'domready', function(){ 
    $('#myform input').bind('keypress', function(event){ 
      alert("pressed"); 
      var regex = new RegExp("^[a-zA-Z0-9 ]+$"); 
      var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
      if (!regex.test(key)) { 
       event.preventDefault(); 
       return false; 
      } 
    }); 
}); 
相关问题