Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Jquery экранирует символы (https://javascript.ru/forum/dom-window/48444-jquery-ehkraniruet-simvoly.html)

Verbal 04.07.2014 07:45

Jquery экранирует символы
 
есть скрипт и форма
<script type="text/javascript">
var maxLength = 160;
var buttonId = "XplodePage_ctl03_btnSubmit";
var btnButton;
var txtTextarea;
var openTag = "<span style='color:red'>";
var closeTag = "</span>";
$(document).ready(
    function(){
		txtTextarea = $('#txtShortDescription');
		btnButton = $('#'+buttonId);
		txtTextarea.bind("input", function(){
			ChangeElementsState();
		})
	}
)

function CountSymbols(){
	return txtTextarea.val().length;
}

function ChangeElementsState(){
	if (CountSymbols() >= maxLength){
		btnButton.attr("disabled", "disabled");
		str = txtTextarea.val().substr(0, maxLength);
		str += openTag + txtTextarea.val().substr(maxLength) + closeTag;
		txtTextarea.html(str);
		number = maxLength - CountSymbols();
		$("#count").html(number);
	}
	else{
		number = maxLength - CountSymbols();
		$("#count").html(number);
		btnButton.removeAttr("disabled");
	}
}
window.onload=function(){
	ChangeElementsState();
}
</script>
<form>
<textarea id="txtShortDescription" rows="10">asdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasdasdasdaasda</textarea><br />
<span id="count"></span><br />
<input id="XplodePage_ctl03_btnSubmit" type="submit" value="submit">
</form>


при вводе больше 160 символ добовляется строчка text---&lt;span style='color: red;'&gt;---text---&lt;/span&gt;
либо text---<span style='color: red;'>---text---</span>
но он не раскрашивает текст в красный, что тут не атк и как изменить?

MallSerg 04.07.2014 08:51

в Textarea html теги не работают и работать в принципе не могут

Verbal 04.07.2014 08:57

а какой может быть выход, если текст расположен именно в textarea? или это безвыходная ситуация и пора сушить вёсла?

рони 04.07.2014 12:07

Verbal,
добавь строку рядом с textarea

MallSerg 04.07.2014 17:52

Самое популярное решение это поместить редактируемый текст в iframe c contentEditable

Erolast 05.07.2014 09:55

Зачем в iframe? :blink:

MallSerg 05.07.2014 11:07

iframe не обязателен но он позволяет создавать отдельную песочницу со своими стилями и отдельным боди


Часовой пояс GMT +3, время: 02:04.