0

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>
4

3 に答える 3

0

あなたには$行方不明があります:

$(document).ready(function() {
    ("<input type='text' />")
---^

次のように置き換えます。

$(document).ready(function() {
    $("<input type='text' />")

{/if}Smartyで解析されない場合、smartyの{literal}PHPタグはJavaScriptで解析されない可能性があります。

于 2013-02-10T15:36:51.220 に答える
0

欠落$しているわけではありません。バリデーターはJSを解析しません。「」が表示されると、HTMLノードのように扱われます。JavaScriptを外部ファイルに移動してみてください。

于 2013-02-10T15:51:53.280 に答える
0

使用しているDOCTYPEによると、JavaScriptコードは次のようにラップする必要があります。

<script type="text/javascript">
<!--
    $(document).ready(function() {
        $("<input type='text' />")
        //...
    });
//-->
</script>

これにより、HTMLバリデーターにコンテンツを無視するように効果的に指示されます。

于 2013-02-10T15:55:27.793 に答える