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