【发布时间】:2013-09-11 12:20:41
【问题描述】:
我有一个文本区域
<textarea id="text" name="text" rows="6"></textarea>
<style>
#text { width: 30%; }
</style>
提交表单时,我需要检查输入是否超过 6 行。我有一个 JS 代码,它检查滚动条(滚动条存在 = 超过 6 行 = 无效输入),它工作得很好。棘手的部分是,在禁用 JS 的情况下如何使用 PHP 验证输入?
我试过这样的
public function overflowValidator($input, $maxLines, $cols) {
$linebreakCount = substr_count($input, "\n");
$overflow1 = ($linebreakCount <= $maxLines);
$overflow2 = (ceil(strlen($input) / $cols) <= $maxLines);
return $overflow1 && $overflow2;
}
最大的问题是文本区域的宽度是动态的(响应式设计),所以我不能轻易说出一行中有多少个字母。恐怕这无法解决,但也许有一个我不知道的解决方案......
【问题讨论】:
-
为什么不统计字符串中的字符数呢?我看不出计算行数的目的......
-
int strlen (string $string)
-
当我稍后在不同的页面上显示它时,容器必须与 textarea 具有完全相同的大小,因此它们看起来都相同(我需要通过限制它来限制它的大小行数)。这就是为什么...
-
不过,计算行数以创建相同的 textarea 对我来说没有多大意义。字符计数函数在 PHP 或 Javascript 中是标准的,而不是行计数是有原因的。我只是创建另一个具有相同尺寸的文本区域并限制字符数...
标签: php html forms validation textarea