我有一个javascript字符计数器,我在文本区域内使用。它在普通的html中工作得很好,但是当我在php中的文本区域内放置完全相同的代码时,什么都没有。
这是html工作正常的时候:
<div id="counter">
<span id="counter_airway" style="font-size:11px; color:#666666;">140 Character Limit</span>
</div>
<div id="grapvine_text">
<form name="CommentBox" method="post" action="Profile.php?id=<?php echo $prof->id; ?>">
<textarea name='airway' class='round_10px' onkeyup="limit_length(this,140,'counter_airway');"></textarea>
</form>
这里是在我的php表单中实现的:
<div id="commentBoxBlog">
<form name="CommentBox" method="post" action="Profile.php?id=<?php echo $prof->id; ?>">
<?php
if($auth->id == $prof->id) {
echo "<div id='counter'>
<span id='counter_airway' style='font-size:11px; color:#666666;'>140 Character Limit</span>
</div><textarea name='airway' class='round_10px' onkeyup='limit_length(this,140,'counter_airway');'></textarea>
<input type='submit' name='commentProfileSubmit' value='Exhale' class='post'/>";
}
elseif(!$auth) {
echo "<textarea name='ProfileComment' class='round_10px' disabled>Please sign in to comment...</textarea>";
}
elseif($auth->id != $prof->id) {
echo "<textarea name='ProfileComment' class='round_10px'></textarea>
<input type='submit' name='commentProfileSubmit' value='Exhale' class='post' />";
}
?>
</form>
</div>
</div>
答案 0 :(得分:2)
需要逃避引用,而不是:
onkeyup='limit_length(this,140,'counter_airway')
你可以这样做:
onkeyup='limit_length(this,140,\"counter_airway\")'
答案 1 :(得分:2)
你有一个引用嵌套问题。您使用单引号围绕onkeyup
的{{1}}属性,但也在该javascript代码段中使用单引号。由于您在PHP字符串中使用双引号,因此请在JavaScript代码段中使用转义双引号(textarea
)。
当然,将javascript分离到外部文件并绑定到\"
事件会更好。您可以通过为您的textarea分配keyup
并在DOM准备就绪后的某个时间调用以下内容来轻松完成此操作:
id
答案 2 :(得分:1)
PHP完全在服务器端运行。您的浏览器永远不会看到PHP的痕迹,只是PHP脚本生成的HTML代码。 Javascript完全在客户端工作。
您的HTML是手工编码还是HTML脚本,本质上并不重要。您需要查看的是脚本在浏览器的“查看源”模式下生成的HTML。请将其发布到您的问题中。
答案 3 :(得分:1)
您已将部分双引号更改为单引号。这将导致错误,例如:
onkeyup='limit_length(this,140,'counter_airway');'
将其与原作比较:
onkeyup="limit_length(this,140,'counter_airway');"
您需要转义引号而不是更改引号:
onkeyup=\"limit_length(this,140,'counter_airway');\"