我真的不懂JS,所以必须使用php strlen()函数。但我想减少服务器上的负载。这是我的注册表格:
<blockquote>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<h3><i>Username </i></h3> <input type="text" name="new_user_name" size="14" style="width:254px; height:24px; " /><br/>
<h3><i>Password </i></h3><input type="Password" name="new_user_password" SIZE="14" style="width:254px; height:24px;" /><br/>
<h3><i>Email </i></h3><input type="text" name="new_user_mail" size="14" style="width:254px; height:24px;" /><br/><br/>
<input type="submit" name="submitok" id="mysubmit" value="Sign Up!" />
</form>
</blockquote>
答案 0 :(得分:0)
您仍应进行服务器端检查。依靠客户端输入验证是一个非常糟糕的主意。如果用户禁用了Javascript怎么办?如果用户使用自己的表单怎么办?
至于您的问题,您可以执行以下操作:
<input type="text" id="signupbox" onchange="verifyLength(this)" />
<span id='warning'></span>
(Javascript code)
function verifyLength(e) {
if (e.value.length > 5) { // Change 5 to whatever you want as your minimum length
document.getElementById('warning').innerHTML = "Your input is too short!"
} else {
document.getElementById('warning').innerHTML = "";
}
}
答案 1 :(得分:0)
提交时:
document.getElementById('form_id_here').addEventListener('submit', function(e) {
if (document.getElementById('input_id_here').length < minimum_length_here)
e.preventDefault();
}, false);
改变:
document.getElementById('input_id_here').addEventListener('change', function(e) {
if (e.target.length < minimum_length_here)
// do stuff
else
// do other stuff
}, false);
请注意.length
测量UTF-16值,如果您的字符不在BMP中,则与Unicode代码点不同。
另请注意,您应该保持服务器端检查;如果用户禁用了JavaScript并且您没有服务器端验证,则可以绕过您的预期限制。
答案 2 :(得分:0)
您可以查看一下:
http://docs.jquery.com/Plugins/validation#Validator
查看各种验证方法,并且比您要求的更多: http://docs.jquery.com/Plugins/validation#Validator
希望这会有所帮助 - 简单易行!
答案 3 :(得分:0)
有很多方法可以做到这一点。就像Stackoveflow在其评论文件中所做的那样,每次按键计算字符数并告知用户需要多少其他字符,你可以做这样的事情。(我没有运行代码) HTML:
<label id="name'>Name:<input type="text"/><span></span></label>
的JavaScript(jQuery的):
$('#name input').bind('keydown', function(e){
if($('#name input')[0].val().length < 5){
$('#name span').text('You need ' + (5 - $('#name input')[0].val().length ) + 'more charecters');
}
else{ $('#name span').text('');}
});
答案 4 :(得分:0)
有几种方法,可以通过答复的数量来证明。这是另一个,类似于Jared Ng的答案,但是使用onkeypress并检查以确保输入不是控制键,否则当你点击你的限制标签时,退格将不适合你。
<html>
<head>
<script type="text/javascript">
function limit_length(event, max_length) {
event = (event) ? event : window.event;
var keycode = (event.which) ? event.which : event.keyCode;
if (keycode > 48) {
if (document.myform.myinput.value.length >= max_length) return false;
}
return true;
}
</script>
</head>
<body>
<form name="myform">
<input type="text" name="myinput" onkeypress="return limit_length(event, 5)"/>
</form>
</body>