Javascript 如何在动态添加的文本框中验证URL

Javascript 如何在动态添加的文本框中验证URL,javascript,html,Javascript,Html,当我进入动态添加的文本框时,如何检查URL是否正确 这里t3是作为输入标记的id给出的,但它只适用于第一个动态添加的文本框,不适用于其他文本框 如何验证下一个动态添加的文本框中存在的另一个URL <script type="text/javascript"> function GetDynamicTextBox(value){ return '<Label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs

当我进入动态添加的文本框时,如何检查URL是否正确

这里t3是作为输入标记的id给出的,但它只适用于第一个动态添加的文本框,不适用于其他文本框

如何验证下一个动态添加的文本框中存在的另一个URL

<script type="text/javascript">
function GetDynamicTextBox(value){
return '<Label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enter the URL : </label>' +
 '<input name = "habits" type="text" id = "t3" value = "' + value + '" />' +
        '&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="Remove" onclick = "RemoveTextBox(this)" /><br><br>'
}
function AddTextBox() {
var div = document.createElement('DIV');
div.innerHTML = GetDynamicTextBox("");
document.getElementById("TextBoxContainer").appendChild(div);
}

function RemoveTextBox(div) {
document.getElementById("TextBoxContainer").removeChild(div.parentNode);
}

function RecreateDynamicTextboxes() {
var values = eval('<%=Values%>');
if (values != null) {
    var html = "";
    for (var i = 0; i < values.length; i++) {
        html += "<div>" + GetDynamicTextBox(values[i]) + "</div>";
    }
    document.getElementById("TextBoxContainer").innerHTML = html;
}
}
window.onload = RecreateDynamicTextboxes;
</script>



<html>
<head>
<title>T-SUMM</title>


<script type="text/javascript">

        function check()
        {
            if (document.getElementById('t1').value==""
             || document.getElementById('t1').value==undefined)
            {
                alert ("Please Enter a Query");
                return false;
            }                

            var regex = /(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/;
            if(!regex .test(document.getElementById('t2').value)||!regex .test(document.getElementById('t3').value)) 
            {
                    alert("Please enter valid URL.");
                    return false;
            } 

            return true;
        }

    </script>

</head>
<body>

<center>
<form method="Post" action="./result.jsp">
<table>
<br><br><Label> Enter a Query :  &nbsp;</label>
<input name='habits' id='t1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    <br><br>
<Label>     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter the URL :  </label>
<input name='habits' id='t2'>
&nbsp;&nbsp;<input id="btnAdd" type="button" value="add another URL"     onclick="AddTextBox()" /><br><br>
<div id="TextBoxContainer">
<!--Textboxes will be added here -->
</div>

<input type="submit" name="submit" onclick="return check();"> 

</table>
</form>


</body>
</html>

函数GetDynamicTextBox(值){
return“输入URL:”+
'' +
“

” } 函数AddTextBox(){ var div=document.createElement('div'); div.innerHTML=GetDynamicTextBox(“”); document.getElementById(“TextBoxContainer”).appendChild(div); } 函数RemoveTextBox(div){ document.getElementById(“TextBoxContainer”).removeChild(div.parentNode); } 函数重新创建DynamicTextBox(){ var值=评估值(“”); 如果(值!=null){ var html=“”; 对于(变量i=0;i
输入查询:

输入URL:

HTML-index.HTML

<html>
<head>
<title>T-SUMM</title>

<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">

        function check()
        {



            if (document.getElementById('t1').value==""
             || document.getElementById('t1').value==undefined)
            {
                alert ("Please Enter a Query");
                return false;
            }                

            var regex = /(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/;
            var boxes = document.getElementsByTagName('input');
            for(i = 0; i < boxes.length; i++) {
                if(boxes[i].type == "text" && boxes[i].className==="urls" && !regex.test(boxes[i].value)) {
                    alert("Please enter valid URL. Error in Text Box "+boxes[i].value);
                    return false;
                }
            }

            return true;
        }

    </script>

</head>
<body>

<center>
<form method="Post" action="./result.jsp">
<table>
<br><br><Label> Enter a Query :  &nbsp;</label>
<input name='habits' id='t1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    <br><br>
<Label>     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter the URL :  </label>
<input name='habits' class="urls" id='t2'>
&nbsp;&nbsp;<input id="btnAdd" type="button" value="add another URL"     onclick="AddTextBox()" /><br><br>
<div id="TextBoxContainer">
<!--Textboxes will be added here -->
</div>

<input type="submit" name="submit" onclick="return check();"> 

</table>
</form>


</body>
</html>

T-总和
函数检查()
{
if(document.getElementById('t1')。值=“”
||document.getElementById('t1')。值==未定义)
{
警报(“请输入查询”);
返回false;
}                
var regex=/(http | https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/\\/([\w\\!:?+=&%!\-\/])?/;
var-box=document.getElementsByTagName('input');
对于(i=0;i
输入查询:

输入URL:

JS-script.JS

function GetDynamicTextBox(value){
return '<Label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enter the URL : </label>' +
 '<input name = "habits" type="text" class="urls" value = "' + value + '" />' +
        '&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="Remove" onclick = "RemoveTextBox(this)" /><br><br>'
}
function AddTextBox() {
var div = document.createElement('DIV');
div.innerHTML = GetDynamicTextBox("");
document.getElementById("TextBoxContainer").appendChild(div);
}

function RemoveTextBox(div) {
document.getElementById("TextBoxContainer").removeChild(div.parentNode);
}

function RecreateDynamicTextboxes() {
var values = eval('<%=Values%>');
if (values != null) {
    var html = "";
    for (var i = 0; i < values.length; i++) {
        html += "<div>" + GetDynamicTextBox(values[i]) + "</div>";
    }
    document.getElementById("TextBoxContainer").innerHTML = html;
}
}
window.onload = RecreateDynamicTextboxes;
函数GetDynamicTextBox(值){ return“输入URL:”+ '' + “

” } 函数AddTextBox(){ var div=document.createElement('div'); div.innerHTML=GetDynamicTextBox(“”); document.getElementById(“TextBoxContainer”).appendChild(div); } 函数RemoveTextBox(div){ document.getElementById(“TextBoxContainer”).removeChild(div.parentNode); } 函数重新创建DynamicTextBox(){ var值=评估值(“”); 如果(值!=null){ var html=“”; 对于(变量i=0;i我认为您可以首先尝试向“TextBoxContainer”div和user event.target或event.src元素添加一个“onchange”处理程序,以确定它是否是触发“onchange”事件的文本框。如果触发器dom正是您想要的,那么您可以尝试验证其值,如果不是,则无需执行任何操作。如果这样做了,那么剩下的事情就是简单地向container元素添加/删除文本框。以下是一些可能有帮助的示例代码:

<script type="text/javascript">
    var _container = document.getElementById('TextBoxContainer');
    function add(){
        var _txt = document.createElement("INPUT");
        _txt.type = "text";
        _container.appendChild(_txt);
    }

    _container.onchange = function(event){
        var _dom = event.target || event.srcElement;
        if(_dom && _dom.tagName === "INPUT" && _dom.type === "text"){
            //alert(_dom.value);
            //You can validate the dom value here
        }
    };

    document.getElementById('add').onclick=function(){
        add();
    };
</script>

var_container=document.getElementById('TextBoxContainer');
函数add(){
var_txt=document.createElement(“输入”);
_txt.type=“text”;
_container.appendChild(_txt);
}
_container.onchange=函数(事件){
var _dom=event.target | | event.src元素;
if(_-dom&&&u-dom.tagName==“输入”&&&u-dom.type==“文本”){
//警报(_dom.value);
//您可以在这里验证dom值
}
};
document.getElementById('add')。onclick=function(){
添加();
};

他的问题是为动态添加的元素添加验证。。。这不仅仅是关于URL验证@回旋