我想添加两个动态文本框以输入“IP Range From”到“IP Range To”,并添加一个按钮以插入新的IP Range和验证来测试这些范围。
请建议代码。
等待你的早期回应。
先谢谢 TANU
答案 0 :(得分:1)
假设您使用jQuery,如果我是你,我会使用“textbox-list”创建一个DIV,然后在div之后,在上面的div中添加一个新文本框的按钮。
以下是代码的一部分:
<div id="iprange_list">
</div>
<a href="#" id="new_iprange"><img src="images/plus.png" alt="new ip range image"/></a>
然后在id .click()
上添加一个new_iprange
事件,动态添加一行,其中包含2个带唯一ID的输入(静态文本+增量变量)。我建议你用每行的一个类定义一般跨度,比如“linecontainer”,然后用你上面使用的增量变量为你的跨度添加一个“title”属性。
点击几下后,你的div看起来就像那样:
<div id="iprange_list">
<span class="linecontainer" title="1"><input type="text" id="tbxfrom1" /><input type="text" id="tbxto1" /></span>
<span class="linecontainer" title="2"><input type="text" id="tbxfrom2" /><input type="text" id="tbxto2" /></span>
<span class="linecontainer" title="3"><input type="text" id="tbxfrom3" /><input type="text" id="tbxto3" /></span>
</div>
<a href="#" id="new_iprange"><img src="images/plus.png" alt="new ip range image"/></a>
最后,当您验证表单时,只需使用jquery selecter检索Div中的每一行,并使用.each()
在您的行之间进行迭代:
$.each($( "#iprange_list .linecontainer" ), function(i, item) {
var currentID = $(item).attr("title");
alert( $( "#tbxfrom" + currentID ).val() );
alert( $( "#tbxto" + currentID ).val() );
});
这只是一个想法,我让你做其余的事情;)!
答案 1 :(得分:0)
要验证IpAddress,您需要使用正则表达式来执行此操作。
然后检查您需要比较两个文本框值
的范围if(textbox1.value > textbox2.value){...
要添加额外的IpRange,您需要使用DOM创建新元素。
var newField = document.createElement('input');
总结所有这些,请参阅jsfiddle
中的工作示例注意:这可能不是你想要的,你可以做其余的事情。
更新代码:
<强> SCRIPT 强>
var ipIndex = 1;
var validIp = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/;
function addIpRange(){
var ipDiv = document.getElementById('ipRange');
var newDiv = document.createElement('div');
ipIndex++;
newDiv.innerHTML = ipIndex + '. From: <input type="text" name="ipfrom" /> To: <input type="text" name="ipto" /><input type="button" onClick="validate(\'ipRange' + ipIndex + '\');" value="Validate">'
newDiv.setAttribute('id', "ipRange" + ipIndex);
ipDiv.appendChild(newDiv);
}
function validate(id){
var divToCheck = document.getElementById(id);
var ipAdress = divToCheck.getElementsByTagName('input');
var ipFrom = document.getElementById(id).childNodes[1].value;
var ipTo = document.getElementById(id).childNodes[3].value;
if(validIp.test(ipFrom)){
if(validIp.test(ipTo)){
if(ipFrom > ipTo){
alert("Invalid Ip Range");
} else {
alert("Valid Ip Range");
}
} else {
alert("Invalid Ip Address [To]");
}
} else {
alert("Invalid Ip Address [From]");
}
}
<强> HTML 强>
<form name="ipAddress">
<div id="ipRange">
<div id="ipRange1">
1. From: <input type="text" name="ipfrom" /> To: <input type="text" name="ipto" /><input type="button" onClick="validate('ipRange1');" value="Validate">
</div>
</div>
<input type="button" value="Add" onClick="addIpRange();"/>
</form>