2015-11-03 3 views
0

Как-то я столкнулся с проблемой синтаксиса. У меня этот код здесьjQuery, function .html правильный синтаксис

$('#logoutput').html("<div id=\"loginbox\" class=\"boxgrid\">Username: <form action=\"\" method=\"post\"><input class=\"textfieldcss\" type=\"text\" name=\"loginname\" value="+$userip+"\">Password: <form action=\"\" method=\"post\"><input class=\"textfieldcss\" type=\"hidden\" name=\"loginpass\" value="+$userpw+"\"></div>"); 

если содержание только:

$('#logoutput').html("<div id=\"loginbox\" class=\"boxgrid\">Username: <form action=\"\" method=\"post\"><input class=\"textfieldcss\" type=\"text\" name=\"loginname\">" 

он не показывает мне ошибку.

Может ли это быть потому, что я внедрил переменные в функцию jQuery?

+0

ли $ userpw и $ userip определены? Какую ошибку вы получили? – Carlos2W

+0

Шаг 1: откройте текстовый редактор, возьмите код, который вы перекачиваете в 'html()', и превратите его в обычный HTML-код без всех этих '' ''. Вы найдете свою опечатку довольно быстро. , не создавайте структурированный контент таким образом, используйте шаблонное решение. –

+1

Пожалуйста, удалите «[разрешено]» из вашего названия, это не обязательно для переполнения стека. Если ваша проблема была решена чьим-то ответом, отметьте этот ответ как принятый Если вы сами придумали этот ответ, напишите его как ответ в разделе ответов (не как часть вопроса), вы также можете пометить его как принятое, если хотите. – usr2564301

ответ

1

Не верный ответ на ваш вопрос, но это поможет вам сделать это гораздо менее проблематичным: не используйте такие строки. По крайней мере, используйте шаблон. Есть много библиотек, которые делают для вас шаблонов, но, по крайней мере, сделать что-то вроде:

<script type="text/html" id="mooTemplate"> 
    <div id="loginbox" class="boxgrid"> 
    Username: 
    <form action="" method="post"> 
    <input class="textfieldcss" type="text" name="loginname" value="{{ userip }}"> 
    Password: 
    <form action="" method="post"> 
    <input class="textfieldcss" type="hidden" name="loginpass" value="{{ userpw }}"> 
    </div> 
</script> 

А потом поменять его в:

var templateHTML = $("#mooTemplate").text() 
        .replace(/{{ userip }}/, userip) 
        .replace(/{{ userpw }}/, userpw); 
$(target).html(templateHTML); 

Хотя опять же, не катят это самостоятельно, просто использовать один из многих готовых решений для шаблонов, доступных в Интернете. Мне лично нравятся nunjucks, но есть и другие.

+0

спасибо за ответ, я посмотрю на него, чтобы я мог реализовать его по-своему, определенно упрощает – Epinephrine

0

This, кажется, работает:

$('#logoutput').html('<div id=\"loginbox\" class=\"boxgrid\">Username: <form action=\"\" method=\"post\"><input class=\"textfieldcss\" type=\"text\" name=\"loginname\" value="'+$userip+'"\">Password: <form action=\"\" method=\"post\"><input class=\"textfieldcss\" type=\"hidden\" name=\"loginpass\" value='+$userpw+'"\"></div>'); 
+0

винт те крошечные маленькие '+ shoulda побежали с ними сначала вместо того, чтобы делать evrything двойные кавычки lol – Epinephrine

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