为什么我有验证错误?

时间:2013-02-10 15:25:57

标签: jquery validation

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&#243;j login" onfocus="javascript:if(this.value=='Tw&#243;j login')this.value='';" onblur="javascript:if(this.value=='')this.value='Tw&#243;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>

3 个答案:

答案 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验证器忽略内容。

相关问题