2012-04-07 14 views
0

Ich habe versucht, nur gültige Zeichen auf einer TextBox in einem Google Map Infowindow zu erlauben. Das Ereignis "keypress" wird nicht ausgelöst. Bitte helfen Sie mir, dieses Problem zu lösen.TextBox Tastendruck Ereignis nicht ausgelöst in Google Map 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; 
       } 
     }); 

Antwort

2

Wenn Sie bind sind ing Ereignis-Listener input Felder, die input Felder werden nicht erstellt yet.You müssen domready Ereignis-Listener auf infowindow hinzufügen möchten, dann bind die keypress Zuhörer:

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; 
      } 
    }); 
}); 
Verwandte Themen