我有一个默认值为http://
. 现在,当用户粘贴一个 url 时(如果他们不知道自己在做什么,就像大多数人一样)它会像这样出来http://http://www.google.com
。我见过一个网站,一旦你拥有http://http://
它,它就会通过 JavaScript 删除一个。
我不熟悉 JavaScript,所以有人可以帮助我吗?
我不想只清除焦点上的字段。
我有一个默认值为http://
. 现在,当用户粘贴一个 url 时(如果他们不知道自己在做什么,就像大多数人一样)它会像这样出来http://http://www.google.com
。我见过一个网站,一旦你拥有http://http://
它,它就会通过 JavaScript 删除一个。
我不熟悉 JavaScript,所以有人可以帮助我吗?
我不想只清除焦点上的字段。
保持简单并使用替换功能:
var url = "http://http://google.com";
url = url.replace("http://http://","http://");
...这基本上将用"http://http://"
第二个字符串替换第一个字符串 " http://"
。
当字段的内容发生变化时,您需要调用它。例如使用 jQuery:
$("#myfield").change(function(e){
$(this).val($(this).val().replace("http://http://","http://"));
});
没有 jQuery(不是 100% 确定这一点):
document.getElementById("myfield").onChange = function(){
var val=document.getElementById("myfield").value;
document.getElementById("myfield").value = value.replace("http://http://","http://");
}
无关但值得一提:这不是 AJAX,它是简单的 javascript。Ajax 是当您尝试使用 XMLHTTP 对象与服务器进行异步通信时使用的术语
Ajax(异步 JavaScript 和 XML 的简写)是一组相互关联的 Web 开发技术,用于在客户端创建交互式 Web 应用程序。使用 Ajax,Web 应用程序可以在后台异步地从服务器检索数据,而不会干扰现有页面的显示和行为。
(通过)
根本没有阿贾克斯来做那种魔术。
这将做到:
$(function(){
$('textarea').bind('keydown', function(e){
var $this = $(this);
if(e.which === 86 && e.ctrlKey){
setTimeout(function(){
$this.val($this.val().replace(/http:\/\/http:\/\//,"http://"));
}, 1);
}
});
});
如果已经存在,这将替换http://
。如果用户使用上下文菜单进行粘贴,ctrl+v
您可能还希望在事件上调用相同的例程。change
有一个无正则表达式选项总是很高兴(节省那些宝贵的微秒!):
var url = "http://http://google.com";
url = url.substring(url.lastIndexOf("http://"));
// -> "http://google.com"
您不需要 ajax 来做到这一点,只需简单的 javascript 就可以了。
jQuery(document).ready(function(){
jQuery('#idofurtextfield').blur(function(){
jQuery(this).val(jQuery(this).val().replace(/(http:\/\/)\1/, '$1'));
});
});