2016-01-08 37 views
0

我在我的項目中做了smily功能它工作正常,如果我將該變量放在窗體外,但它不能與窗體一起工作,任何人都可以解決如何在textarea中顯示圖像,這是我的代碼如何在yii2中顯示smilys

<?php 
    echo $model->Description; (It shows me smily here but in active form it doesnt show) 
    $form = ActiveForm::begin([ 
       'options' => ['enctype'=>'multipart/form-data','id'=>'ajax-post-form' 
       ] 
      ]); ?> 

    <div> 
     <?php echo $form->field($model, 'Description')->textarea(['rows' => 6]) ?> 
    </div> <?php ActiveForm::end(); ?> 
+1

這是不平凡的,你可能要切換到整個別樣像https://www.tinymce.com/編輯器。 –

+0

但我們無法添加輸入類型的編輯器 – Nikul

+0

您有任何其他解決方案嗎? – Nikul

回答

2

無法在默認的<textarea>中顯示圖形。 你只能這樣做:
HTML

<textarea id="description" name="description"></textarea> 

<div id="emoticons"> 
    <a href="#" title=":)"><img alt=":)" border="0" src="http://markitup.jaysalvat.com/examples/markitup/sets/bbcode/images/emoticon-happy.png" /></a> 
    <a href="#" title=":("><img alt=":(" border="0" src="http://markitup.jaysalvat.com/examples/markitup/sets/bbcode/images/emoticon-unhappy.png" /></a> 
    <a href="#" title=":o"><img alt=":o" border="0" src="http://markitup.jaysalvat.com/examples/markitup/sets/bbcode/images/emoticon-surprised.png" /></a> 
</div> 

JAVA SCRIPT

$('#emoticons a').click(function() { 
    var smiley = $(this).attr('title'); 
    ins2pos(smiley, 'description'); 
}); 

function ins2pos(str, id) { 
    var TextArea = document.getElementById(id); 
    var val = TextArea.value; 
    var before = val.substring(0, TextArea.selectionStart); 
    var after = val.substring(TextArea.selectionEnd, val.length); 
    TextArea.value = before + str + after; 
} 

Demo Link

1

可以渲染表情符號,在textearea,如定義的任何其它字符unicode規範。

指數:http://www.unicode.org/emoji/charts/index.html

表情符號列表:http://www.unicode.org/emoji/charts/full-emoji-list.html

在表情符號列表,你可以參考列「代碼」知道的Unicode值,或複製&粘貼在所顯示的值列「眉毛」。如果有必要(我認爲你應該閉上你的眼睛關於其他豐富多彩的專欄)。

您將需要使用可顯示這些字形的字體。使用這種技術,只有單色 emojis/smileys可以顯示,但它不需要任何破解textarea,它只是文本。

此外,您將能夠以您最喜愛的UTF格式保存此文本。

出於顯示目的,您可能希望將unicode字符轉換爲圖像。當然這是可能的(在textarea之外),但不是強制性的。

希望它可以幫助

相關問題