Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将输入限制为两个单词max和on-the-fly?_Javascript_Php_Jquery - Fatal编程技术网

Javascript 如何将输入限制为两个单词max和on-the-fly?

Javascript 如何将输入限制为两个单词max和on-the-fly?,javascript,php,jquery,Javascript,Php,Jquery,我有一个标签的输入字段。我们希望将标记限制为最多两个单词。我怎样才能限制这一点 我在想以下几点,但不确定是否有更简单的解决方案 数一数空格。如果用户键入并点击空格,则假定左侧的所有内容都是单词。当用户再次键入并再次点击空格时,假设我们点击了两个单词。用户不再可以向前键入,但可以退格以清除第二个单词(或整个输入) 利用str\u word\u count()对PHP脚本的ajax调用。我想每次用户按键时我都可以打电话,但这不是太过分了吗?也许在每一个空格后打这个 还有其他想法吗?用jquery

我有一个标签的输入字段。我们希望将标记限制为最多两个单词。我怎样才能限制这一点

我在想以下几点,但不确定是否有更简单的解决方案

  • 数一数空格。如果用户键入并点击空格,则假定左侧的所有内容都是单词。当用户再次键入并再次点击空格时,假设我们点击了两个单词。用户不再可以向前键入,但可以退格以清除第二个单词(或整个输入)
  • 利用str\u word\u count()对PHP脚本的ajax调用。我想每次用户按键时我都可以打电话,但这不是太过分了吗?也许在每一个空格后打这个

还有其他想法吗?

用jquery试试这种方法(没有服务器端代码)

html


是的,当服务器方法应该是前端验证(客户端)时,在每次进行更改时调用服务器方法会有点过头

让Javascript处理这种验证是一种常见的做法。您还可以在接收数据时添加服务器验证,以防止保存无效数据

在Javascript中,您可以向输入添加一个侦听器,如下所示:

var input_field = document.getElementById('id_of_the_input');
input_field.addEventListener('input', function()
{
  if(input_field.value.split(" ").length > 2){
    alert("You should input only 2 words"); //Change this for a better message
  }
});

下面是一个演示,演示如何“动态”限制输入元素中的单词。通过设置
acceptWords
的值,可以调整代码以接受一个或多个单词

$(文档).ready(函数(){
$('input')。在('input',函数(){
var acceptWords=2,//要接受的字数
boundary=[],//存储使用的单词边界字符
value=this.value.replace(/\W/g,函数(a){//实际单词数组
如果(--接受字>0){
边界推(a);
}
返回“”;
}).分割(“”),
finalValue=value[0],//输入的最终值
N
if(boundary.length){//if找到单词边界字符
对于(n=0;n


这个问题似乎提得太早了。当您遇到问题时,您应该尝试您的想法并提供代码。这就是这个网站的基本运作方式。这不是一个智囊团或董事会在客户端处理它,否则,如果您在每次按键时与服务器通信,您将浪费网络资源。而是从客户端限制用户。
<input type="text" id="txt1"/>
var input_field = document.getElementById('id_of_the_input');
input_field.addEventListener('input', function()
{
  if(input_field.value.split(" ").length > 2){
    alert("You should input only 2 words"); //Change this for a better message
  }
});