【发布时间】:2011-12-31 03:10:07
【问题描述】:
我在 HTML 页面上有一个文本字段,用于检查您是否输入了 1 到 365 之间的值。如果用户输入了无效值,例如非数字字符或不在范围内的值,它显示一个弹出窗口。我在 watir wiki 上看到有一个 select_no_wait 方法,用于在您从列表中选择无效值时关闭弹出窗口。
处理 keyup 事件上发生的弹出窗口的好方法是什么?我是否需要按照 select_no_wait 方法的实现方式继续进行,或者我们是否可以启动一个不同的进程来消除调用 set 方法时可能出现的弹出窗口。
带有 Javascript 验证功能的 HTML 文件示例如下:
<html>
<head>
<script type="text/javascript">
var num = 0
function validate(e)
{
var charPressed = String.fromCharCode(e.keyCode);
if(charPressed >= '0' && charPressed<= '9')
{
num = parseInt(document.getElementById('foo').value);
if ((document.getElementById('foo').value).length <= 3 && (num > 365 || num==0))
alert ("Values can only be from to 1 to 365");
}
else
{
alert("Invalid character entered");
document.getElementById('foo').value = "";
}
}
</script>
</head>
<body>
<label id="code"> Sample </label>
<input type="text" id ="foo" onkeyup="validate(event)" maxLength="3"/>
</body>
</html>
我非常感谢有关此问题的任何指示。提前致谢。
【问题讨论】:
-
就在我的脑海中,我敢打赌,如果用户输入一个 4 位(或更多)位的数字,其中前三位数字小于 366,验证将无法发出警报。例如如果您输入 1111 或 2222 或 3651
-
查克文本字段只接受 3 个字符,这就是我使用 maxLength = 3 属性的原因
-
因此,如果您认为该值永远不会超过三位数,那么为什么要检查长度
-
我的安全测试人员也想问“你也有服务器端验证对吗?因为从安全角度来看,客户端验证只是为了让你的客户更轻松,你永远不应该相信它可以保护您免受攻击者的攻击,这些攻击者只需几个心跳就可以绕过它。”
-
Chuck,是的,我们有服务器端验证。我只是想提出一个小例子。 length
标签: ruby watir watir-webdriver