http://validator.w3.org中的我的页面显示错误:
$("<input type='text' />")
为什么呢? 我的代码不是有效的吗? 我提出了一段代码。请帮忙。
<form action="{$smarty.const.APP_URL}user/login/" method="post">
<table style="margin:0 auto 0 auto;">
<tr>
<td><input type="text" size="25" name="user_login" value="Twój login" onfocus="javascript:if(this.value=='Twój login')this.value='';" onblur="javascript:if(this.value=='')this.value='Twój login';" /></td>
<td><input type="password" size="25" name="user_password" id="password" /></td>
<td><input type="submit" class="btnLogin" value="" /></td>
</tr><tr>
<td colspan="3">
<p align="right"><a href="{$smarty.const.APP_URL}user/register/">utwórz konto</a> | <a href="{$smarty.const.APP_URL}user/password-reminder/">zapomniałem hasła</a></p>
</td>
</tr>
</table>
</form>
{/if}
{literal}
<script type="text/javascript">
$(document).ready(function() {
("<input type='text' />")
.attr("name", "password_mask")
.attr("id", "password_mask")
.attr("size","25")
.val("Twoje has\u0142o")
.insertAfter("#password");
$("#password_mask").focus(function() {
$(this).hide();
$("#password").show().focus();
});
$("#password").hide().blur(function() {
if($(this).val().length == 0) {
$(this).hide();
$("#password_mask").show();
}
});
});
</script>
{/literal}
</div>
答案 0 :(得分:0)
您遗失了$
:
$(document).ready(function() {
("<input type='text' />")
---^
将其替换为:
$(document).ready(function() {
$("<input type='text' />")
可能是{/if}
,{literal}
聪明的PHP标记可能无法被JavaScript解析,如果它们没有得到Smarty的解析!
答案 1 :(得分:0)
它不是缺少$
,它是验证者不解析JS - 当它看到“”它将它视为一个html节点 - 尝试将你的javascript移动到外部文件
答案 2 :(得分:0)
根据您的DOCTYPE,JavaScript代码可能需要像这样包装:
<script type="text/javascript">
<!--
$(document).ready(function() {
$("<input type='text' />")
//...
});
//-->
</script>
这将有效地告诉HTML验证器忽略内容。