我想验证输入框的第一个字母表,我的代码不起作用。
<input type="text" value="www.example.com" id="txt_url"
onkeyup="if(!this.value.match(/^http\:\/\//) && (txt_url.lenght >= 7 )this.value='http://'+this.value" />
答案 0 :(得分:0)
该代码无效的原因有三个:
lenght
应为length
。txt_url.length
应为this.value.length
。)
条件结束时错过了结束if
。工作版:
<input type="text" value="www.example.com" id="txt_url"
onkeyup="if(!this.value.match(/^http\:\/\//) && (this.value.length >= 7))this.value='http://'+this.value" />
答案 1 :(得分:0)
您使用的函数中存在拼写错误。(txt_url.lenght)。
我相信它应该是txt_url.length。此外,如果您想验证网址,网上还有更好的正则表达式。
答案 2 :(得分:0)
lenght
。以下假设模糊,但您可以将事件更改为您想要的任何内容:
jQuery:
$(function() {
$('#text_url').on('blur', function() {
if (!/https?:\/\//.test($(this).val()))
$(this).val('http://'+$(this).val());
});
});
原生JS:
document.addEventListener('DOMContentLoaded', function() {
document.querySelector('#text_url').addEventListener('blur', function() {
if (!/https?:\/\//.test(this.value))
this.value = 'http://'+this.value;
}, false);
}, false);
答案 3 :(得分:0)
您的代码已更正
<input type="text" value="www.example.com" id="txt_url"
onkeyup="if(this.value.match(/^http\:\/\//)==null
&& this.value.length>7)this.value='http://'+this.value;" />
但是如果你想自动输入http://前缀,即使是像ab.com这样的较短域名 然后你可以使用
<input type="text" value="www.example.com" id="txt_url"
onkeyup="if(this.value.match(/^h(t(t(p(\:(\/(\/)?)?)?)?)?)?/)==null)
this.value='http://'+this.value;" />