【发布时间】: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