我使用2种方法来检查用户是否在textarea中输入了太多字符:
1)(被动)PHP:
$textarea = $_POST['textarea'];
if (strlen($textarea)>300){$verify="bad";}
Run Code Online (Sandbox Code Playgroud)
2)(active-whyle打字)Javascript:
function ismaxlength(obj)
{
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}
Run Code Online (Sandbox Code Playgroud)
textarea本身如下(html):
<textarea name="textarea" id="textarea" cols="40" rows="5" style="border: 1px solid #480091; width:460px;" wrap="soft" maxlength="300" onpaste="return ismaxlength(this)" onkeyup="return ismaxlength(this)"></textarea>
Run Code Online (Sandbox Code Playgroud)
两种方法都有效,除了PHP strlen()函数似乎计算返回(换行符)与我的Javascript函数不同.
有没有人知道如何解决这个问题,所以他们都计算相同的#字符,无论换行符和空格等.
非常感谢!