1

我想添加一个输入字段,用户可以输入/修改格式为 198.162.0.0/45 的 IP 地址,表示范围为 198.162.0.0 - 198.162.0.45

我几乎可以使用,但它不允许完整的正确格式。如果我输入以下任何内容,它就可以正常工作。198/45、198.168 或 198.168.0.45

但是一旦我尝试添加 198.168.0/24 或 198.168.0.0/24

我希望能够添加 198.168.0.0/24 而不必分解字段,但如果必须的话,我可以。

当我的动态元素附加到包含输入字段的 div 标记时,它会出现脚本错误。

基本上我的设置是这样的,空的 div 标签我将附加以下内容。newIpRange 以字符串形式出现,例如 198.168.0.0/24 EDIT 带有产生问题的测试 html

<html>
<head>
<title>Test IP</title>

<script type="text/javascript">

function onload(range){

var e = document.getElementById("_main");
e.innerHTML = getTag(range);

}

function getTag(range){
return "<div class='input-append'  ><input  type='text' value='" + range + "' ></input><div>";
}

</script>
</head>
<body onload="onload(198.168.1.0/24);">
<div id="_main" >

</div>
</body>
</html>

什么会导致这个?我真正感兴趣的是为什么它在某些情况下会给出错误,而不是在其他情况下

这是我在附加此行时从脚本中得到的错误: SCRIPT1006: Expected ')'

4

1 回答 1

0

在我制作的示例上花了一点时间后,我终于意识到,javascript 是如何解析值的。

在 10.12/24 的情况下,只要我在其中添加额外的句点,它就将它评估为一个带有除法的数字,它不能再将它评估为一个数字,以解决将它放在字符串文字中清理所有内容的问题!

为了解决这个问题,我将 ipcallback 放入一对单引号中,以告诉 javascript 它是一个字符串

<script>
</head>
<body onload="onload('198.168.1.0/24');">
<div id="_main" >
于 2013-01-21T22:35:31.097 回答