2015-04-09 4 views
0

Как я могу сделать эту работу в одном файле HTML? Я попытался добавить его в заголовок, и он не работает. Пожалуйста, можете меня научить.Разрешить определенные символы в текстовом поле

$("#mytextbox").on("keypress", function(event) { 
 

 
    // Disallow anything not matching the regex pattern (A to Z uppercase, a to z lowercase and white space) 
 
    // For more on JavaScript Regular Expressions, look here: https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions 
 
    var englishAlphabetAndWhiteSpace = /[A-Za-z ]/g; 
 
    
 
    // Retrieving the key from the char code passed in event.which 
 
    // For more info on even.which, look here: http://stackoverflow.com/q/3050984/114029 
 
    var key = String.fromCharCode(event.which); 
 
    
 
    //alert(event.keyCode); 
 
    
 
    // For the keyCodes, look here: http://stackoverflow.com/a/3781360/114029 
 
    // keyCode == 8 is backspace 
 
    // keyCode == 37 is left arrow 
 
    // keyCode == 39 is right arrow 
 
    // englishAlphabetAndWhiteSpace.test(key) does the matching, that is, test the key just typed against the regex pattern 
 
    if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || englishAlphabetAndWhiteSpace.test(key)) { 
 
     return true; 
 
    } 
 

 
    // If we got this far, just return false because a disallowed key was typed. 
 
    return false; 
 
}); 
 

 
$('#mytextbox').on("paste",function(e) 
 
{ 
 
    e.preventDefault(); 
 
});
<input id="mytextbox" style="width:300px" placeholder="Only English letters are allowed here...">

+0

Что не работает? у вас есть код в теге ' в конце. Это единственное, что я могу сделать. – bobos

ответ

0

Лучшее и наиболее совместимый способ включить JS на веб-странице, чтобы сохранить его в файл .js и включить его в страницу HTML с:
<script type="text/javascript" src="file.js"></script>

Если вы действительно хотите, чтобы быть в одной и той же странице, удалить свойство Src и поместить код между тегами сценария, но могут возникнуть проблемы, так как вы будете иметь < и> символы в ваш JS-код, который не разрешен в xml, поэтому это не будет действительным xhtml.

В любом случае этот код, который вы используете, использует библиотеку JQuery, поэтому вам нужно будет импортировать его, прежде чем что-либо делать. В вашей голове < >, говоря:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 

Убедитесь, что вы импортировать его перед своим собственным кодом. Наконец, вам нужно убедиться, что страница загрузилась перед выполнением кода в его содержимом. Вы можете сделать это в JQuery с $ ярлыком:

$(function() { 
    // code goes here 
}); 

Так вся ваша страница должна выглядеть следующим образом:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Title goes here</title> 

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
    <script type="text/javascript"> 

    $(function() { 

     // code goes here 

    }); 

    </script> 
</head> 
<body> 
    <!-- content of the page goes here --> 
</body> 
</html> 
+0

Этот метод работает отлично. – bobos

0

Поскольку вы разместили код в <head> элемента внутри <script> тега, он будет работать как страница загружается, и перед DOM готова - то есть вход выиграл» t существует в этой точке. Предполагая, что у вас есть JQuery ссылки правильно, вы можете use this to wait until the DOM is loaded:

$(function() { 

    $("#mytextbox").on("keypress", function(event) { 
     //...  

    }); 

    $('#mytextbox').on("paste",function(e) 
    { 
     //... 
    }); 
}); 
0

Вот как вы можете поместить его в однофазном HTML файл ...

Вы должны

  1. Импорт JQuery в <head>

  2. Дождитесь окончания загрузки документа.

    $(document).ready(function(){ 
         $("#mytextbox").on("keypress", function(event) { 
    
          // Disallow anything not matching the regex pattern (A to Z uppercase, a to z lowercase and white space) 
          // For more on JavaScript Regular Expressions, look here: https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions 
          var englishAlphabetAndWhiteSpace = /[A-Za-z ]/g; 
    
          // Retrieving the key from the char code passed in event.which 
          // For more info on even.which, look here: http://stackoverflow.com/q/3050984/114029 
          var key = String.fromCharCode(event.which); 
    
          //alert(event.keyCode); 
    
          // For the keyCodes, look here: http://stackoverflow.com/a/3781360/114029 
          // keyCode == 8 is backspace 
          // keyCode == 37 is left arrow 
          // keyCode == 39 is right arrow 
          // englishAlphabetAndWhiteSpace.test(key) does the matching, that is, test the key just typed against the regex pattern 
          if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || englishAlphabetAndWhiteSpace.test(key)) { 
           return true; 
          } 
    
          // If we got this far, just return false because a disallowed key was typed. 
          return false; 
         }); 
    
         $('#mytextbox').on("paste",function(e) 
         { 
          e.preventDefault(); 
         }); 
        }); 
    
0

Вы можете добавить этот сценарий как раз перед телом закрывающего тега внутри тега сценария.

<script type="text/javascript"> 
Your script goes here. 
</script> 
</body> 
Смежные вопросы