RLJ*_*RLJ 8 javascript php textarea character limit
我使用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函数不同.
有没有人知道如何解决这个问题,所以他们都计算相同的#字符,无论换行符和空格等.
非常感谢!
您必须先转换换行符。在 JavaScript 中,换行符是单个换行符。发送的时候有两个。您可以将它们标准化:
$textarea = $_POST['textarea'];
$textarea = str_replace("\r\n", "\n", $textarea);
$textarea = str_replace("\r", "\n", $textarea);
Run Code Online (Sandbox Code Playgroud)
然后你可以计算文本区域的长度。
| 归档时间: |
|
| 查看次数: |
8176 次 |
| 最近记录: |