Javascript 验证文本区域的每一行是否以某个内容开头
我正在尝试验证textarea,确保每一行都以“http://”开头: 当url错误时,它会执行else语句,但如果正确,则不会执行该语句Javascript 验证文本区域的每一行是否以某个内容开头,javascript,jquery,Javascript,Jquery,我正在尝试验证textarea,确保每一行都以“http://”开头: 当url错误时,它会执行else语句,但如果正确,则不会执行该语句 有什么问题吗 不要使用$。每个迭代一个数组。使用以下命令: for(var i = 0; i < links.length; i++) { if(links[i].substring(0, 7) !== 'http://' && links[i].substring(0, 8) !== 'https://') {
有什么问题吗 不要使用
$。每个迭代一个数组。使用以下命令:
for(var i = 0; i < links.length; i++) {
if(links[i].substring(0, 7) !== 'http://' && links[i].substring(0, 8) !== 'https://') {
$('p').text('Error!');
return false;
}
}
for(var i=0;i
由于($('p'))的原因,它不工作代码>。在本例中,这个
只是一个字符串文本
after
函数的第一个参数应该是HTML字符串、DOM元素或jQuery对象,以便在匹配元素集中的每个元素之后插入
这里有一个它不起作用,因为这个
引用了一个字符串对象。after
函数需要一个jQuery对象或字符串。奇怪的是,在javascript中,字符串与字符串对象不同。else语句之所以有效,是因为当您将常规字符串添加到它时,此
正在幕后转换为字符串。但是,if失败,因为在这种情况下,此
仍然是字符串对象。您可以通过几种方式修复它,但以下是其中之一:
$('button').click(function(){
var links = $('textarea').val().split('\n');
$.each(links,function(){
if( this.substr(0, 7) == 'http://' )
$('p').after(''+this);
else
$('p').after('error: '+this+'<br/>');
});
return false;
});
$(“按钮”)。单击(函数(){
var links=$('textarea').val().split('\n');
$.each(链接、函数(){
if(this.substr(0,7)='http://')
$('p')。在(''+此之后);
其他的
$('p')。之后('error:'+this+'
');
});
返回false;
});
编辑
这里有一个指向另一个SO问题的链接,该问题更详细地讨论了这一点
$('button').click(function(){
var links = $('textarea').val().split('\n');
$.each(links,function(){
if( this.substr(0, 7) == 'http://' )
$('p:last').after("<p>" + this + "</p>");
else
$('p:last').after('error: '+this+'<br/>');
});
return false;
});
$(“按钮”)。单击(函数(){
var links=$('textarea').val().split('\n');
$.each(链接、函数(){
if(this.substr(0,7)='http://')
$('p:last')。在(“”+this+””)之后;
其他的
$('p:last')。之后('error:'+this+'
');
});
返回false;
});
我想这样会好一点,试试看
$('button').click(function(){
var links = $('textarea').val().split('\n');
$.each(links,function(){
if( this.substr(0, 7) == 'http://' )
$('#mydiv').append(this + '<br/>');
else
$('#mydiv').append('<span style="color:red;">error: '+this+'</span><br/>');
});
return false;
});
$(“按钮”)。单击(函数(){
var links=$('textarea').val().split('\n');
$.each(链接、函数(){
if(this.substr(0,7)='http://')
$('#mydiv')。追加(this+'
');
其他的
$('#mydiv').append('error:'+this+'
');
});
返回false;
});
HTML:
提交
fiddle:你能展示一下你写的代码吗?没有它很难回答…@Sparky这个jsfiddle就是代码对不起,我不知道链接是什么。看起来你已经得到了一些答案…我很好奇-为什么不$。每个?为什么不在(this);}之后使用$.each(links,function(){$('p'))代码>工作?--nvm,刚刚看到了@Chris N的解释。@Mathematic.coffee:事实上,他的解释部分是错误的。布莱恩·格拉兹解释得更好。@minitech@你的新编辑,但这两个都需要,对吗?@user1099531:不,不会。我正在使用==代码>;如果a不是b,a也不是c。
<textarea></textarea>
<button>Submit</button>
<div id='mydiv'></div>