这里是文本框结果的样子,
Please add the following DNS entries 144.68.238.87 name.domain 144.68.238.88 name.domain 144.68.238.89 name.domain
目标是通过确保用户在提交之前将name.domain
替换为文本框上的服务器名称来验证name.domain
。如果用户没有用他们的服务器名称替换name.domain
,那么它将发送警告消息并返回false,直到用户正确地替换它。
这是我的代码,
function DomainValidate() {
var arrayOfLines = document.getElementById('txt').value.split('/n');
arrayOfLines.shift(); //use shift to skip the first line
for (i = 0; i < arrayOfLines.length; i++) {
//somewhere here need to split to get name.domain and then verify it
var domainName = arrayOfLines[i].split(" ", 2);
if(domainName.Equals("name.domain")
{
alert("You must replace name.domain to your new server name");
return false;
}
}
}
我不确定这些是否正确,因为我无法调试javascript。
答案 0 :(得分:1)
我可以看到的第一个问题是换行符的字符不正确。它应该是\n
而不是/n
。我看到的第二个问题是i
是一个全局变量,它应该是本地变量。第三个问题是arrayOfLines[i].split(' ', 2);
返回一个数组,但你正在对它进行处理,就好像它在下一行if (domainName.Equals('name.domain')
返回一个字符串。
通过这些更正,您的代码看起来更像是这样:
function domainValidate() {
var arrayOfLines = document.getElementById('txt').value.split('\n');
arrayOfLines.shift(); //use shift to skip the first line
for (var i = 0; i < arrayOfLines.length; i++) {
var line = arrayOfLines[i].trim();
// Grab the second part of the split line, which represents the domain name
var parts = line.split(' ');
var domainName = parts[parts.length - 1];
if (!domainName || domainName === 'name.domain') {
alert("You must replace name.domain to your new server name");
return false;
}
}
}
据我所知,未经测试,这应该按预期工作。测试此方法的最佳方法是使用jsfiddle。添加你的html和这个脚本并调用它以查看它是否产生了预期的结果。
答案 1 :(得分:0)
我认为最简单的方式
假设textbox的id是domainTxt
src = document.getElementById("domainTxt");
if(verifyInput(src.value)){
//submit your form here
} else
{
return false;
}
function verifyInput(txtVal){
if(txtVal.indexOf("name.domain") >-1){
return false;
}else {
return true;
}
}