【问题标题】:Allow only english lowercase letters in input textbox在输入文本框中只允许英文小写字母
【发布时间】:2018-11-03 01:07:48
【问题描述】:

晚上好。 我为输入字段创建了一个函数,要求用户为其帐户选择 url。

与我创建的数据库通信并完美运行的部分。也是使字母变低的部分。

但是我不知道如何分区接受特殊字符和空格。

我在互联网上找到了一些解决方案,但输入它调用第二个函数。我不想改变我的功能。我想以某种方式合并到我现有的函数中。

我的html是

<input type="text" name="urlcheck" value="" id="urlcheck" class="form-control" placeholder="Write your url. " required  onkeyup="urlcheck()"/>

我的 JS 是

function urlcheck(){  

var x = document.getElementById("urlcheck");
x.value = x.value.toLowerCase();

var urlcheck = $('#urlcheck').val();  
    if(urlcheck != '')  
           {  
    $.ajax({  
      url:"<?php echo base_url(); ?>portolio/check_url",  
      method:"POST",  
      data:{url:url},  
      success:function(data){ 
      data.trim();
      if(data == '1') {
                             $('#url_result').html('<label class="text-danger">Url is not free</label>'); 
    } else {   
$('#url_result').html('<label class="text-success">Url is free.</label>');

                             }
                         }
                });  
           }  
}; 

我找到的解决方案,但我不知道这是如何合并的:

    <script type="text/javascript">
    function blockSpecialChar(e){
        var k;
        document.all ? k = e.keyCode : k = e.which;
        return ((k > 96 && k < 123) || k == 8 || (k >= 48 && k <= 57));
        }
    </script>
</head>
<body>
    <form id="frm" runat="server">
      <input type="text" name="folderName"  onkeypress="return blockSpecialChar(event)"/>
    </form>

所以...我需要帮助如何在我的 ajax 函数中“插入”波纹管代码

var k;
            document.all ? k = e.keyCode : k = e.which;
            return ((k > 96 && k < 123) || k == 8 || (k >= 48 && k <= 57));

编辑: 在我的输入字段中,我不需要用户编写整个 url。只有最后一部分。例如,如果用户想要 example.com/myname。用户必须填写 myname。我想检查一下!

【问题讨论】:

  • 使用带有正则表达式的 HTMLInputElement pattern 属性 - 不需要函数或服务器。
  • 我强烈建议您使用 leading/hinting 占位符值,以及使用模式属性的非常广泛的 url 验证器(正如 Randy 所说)。然后只在用户完全输入后检查 url - 使用 onblur 或使用 onsubmit() 可能更好。然后启动你的 ajax 函数并使用它:stackoverflow.com/questions/4437223/… 试图容纳每个 url 将是一个很难设计的模式。采取合理的措施,但不要仅仅依靠正则表达式来保护您。
  • 嗨@mickmackusa 我编辑我的第一个问题,因为也许我没有很好地解释(我的英语不是很好)。我需要用户只输入最后一部分而不是整个 url。所以我只想要字母和数字,没有空格和特殊字符。你告诉我关于用 onblur 或 on submit 改变 onkeyup,它与资源或其他东西有关吗?我的意思是我的网站很难在每个键中发送查询?

标签: javascript php ajax forms


【解决方案1】:

您无需为此任务编写 javascript。只需使用pattern 属性即可。

试试我的可运行的 sn-p。输入非字母数字字符,然后单击提交。提交将被停止。

<form>
<input type="text" placeholder="example.com/[your input]" pattern="[a-zA-Z0-9]+">
<button type="submit">Submit</button>
</form>

【讨论】:

  • 这让我可以使用 ÄÖÜ !"§$%&/()=
  • @Gismo 我无法重现您的问题。我刚刚尝试使用w3schools demo 与我的答案中的模式和您的输入,它按预期工作。
【解决方案2】:

使用我发现的这个模式。它只接受网址。

<input type="text" name="urlcheck" value="" id="urlcheck" class="form-control" 
placeholder="Write your url. " required  onkeyup="urlcheck()" required=""  data-bv- 
regexp="true" data-bv-regexp-regexp="https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,}"
            data-bv-regexp-message="Invalid Url">

【讨论】:

  • 哎呀,这是一个非常冗长的模式。你可以尝试浓缩逻辑吗?还是您只是复制粘贴了一些您不太了解的内容?
  • 我不想检查整个网址。只有最后一部分。
猜你喜欢
  • 2019-02-10
  • 2010-10-24
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多