0

Google マップの情報ウィンドウ内の TextBox で有効な文字のみを許可しようとしました。「keypress」イベントは発生しません。この問題を解決するのを手伝ってください。

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;
                }
        });
4

1 に答える 1

2

bindイベントリスナーをフィールドに設定している場合inputinputフィールドはまだ作成されていません。domreadyイベントリスナーをに追加してinfowindowから、リスナーを追加する必要がbindありkeypressます。

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;
            }
    });
});
于 2012-04-07T08:44:50.133 に答える