2013-02-10 2 views
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> 
+1

'' 'отсутствует в' ("") ' – AdityaParab

+1

Также вы передаете код PHP/Smarty в валидатор? – Alexander

ответ

0

Согласно DOCTYPE вас есть код JavaScript, возможно, должны быть обернуты как это:

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

Это позволит эффективно сказать HTML валидатор игнорировать содержимое.

0

У вас есть $ отсутствует:

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

Замените его:

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

Может быть, то {/if}, {literal} Smarty теги PHP может не получить разобран JavaScript, если они приходите, не разбираясь с Smarty!

+0

Это должен быть комментарий, вы не отвечаете на вопрос – pwolaq

+0

@Pawel_W На самом деле я ответил на вопрос. Пожалуйста, проверьте. Я просто задал вопрос в конце. –

+0

это шаблон smarty (обратите внимание на другие подобные теги), поэтому я не знаю, почему вы спрашиваете об этом {/ if} – pwolaq

0

это не об отсутствии $, это то, что валидатор не разобрать JS - когда он видит «» он рассматривает его как HTML узел - попробуйте переместить JavaScript во внешний файл

Смежные вопросы