2017-07-18 26 views
1

私はDojoを使い慣れていて、ユーザーがテキスト領域にHTMLタグを入力しないようにする必要があります。私はいくつか試しましたが、うまくいきませんでした。後でHTMLタグからコンテンツを取り出そうとしましたが、うまくいきませんでした。手伝っていただけませんか?DojoでのSimpleTextAreaの妥当性チェック

<script type="text/javascript"> 
    dojo.ready(function(){ 
    dojo.byId("comments").innerHTML = dojo.replace("<[^>]*>", ""); 
    }); 
</script> 

<div id="comments" name="comments" dojoType="dijit.form.SimpleTextarea" maxLength="900" style="width: 98%; padding-right: 4px; font-size: 1.2em;" aria-required="true" title="<fmt:message key="widget.content2" />"></div> 

答えて

0

Dojoの古い構文を使用しています。あなたが新しい人なら、新しいスタイルを学ぶことをお勧めします。

下記が役立ちます。

require([ 
 
    'dojo/ready', 
 
    'dojo/on', 
 
    'dojo/parser', 
 
    'dijit/registry', 
 
    'dijit/form/SimpleTextarea' 
 
], function(ready, on, parser, registry){ 
 
    ready(function(){ 
 
    parser.parse().then(function(){ 
 
     var comments = registry.byId('comments') 
 
     on(comments, 'keyup', function(){ 
 
     var value = comments.get('value') 
 
     comments.set('value', value.replace(/<[^>]*>/g, '')) 
 
     }) 
 
    }) 
 
    }) 
 
})
#comments { 
 
    width: 98%; 
 
    padding-right: 4px; 
 
    font-size: 1.2em; 
 
}
<script src='//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js'></script> 
 

 
<div id="comments" name="comments" data-dojo-type="dijit.form.SimpleTextarea" maxLength="900" aria-required="true"></div>

+0

を使用すると、ルイスの応答をありがとうございました。現在、Dojoの1.6.0バージョンを使用しています。上記のコードスニペットを追加すると、関数は呼び出されず、htmlタグを取り除くことができませんでした。 – Nature

+0

はい、上記のコードでは、Dojo 1.6.0で動作しない新しいAMD構文を使用しています。私は1.6.0に精通していない。私は恐れている - 私は答えのどれが再利用可能かわからない。私がそれを簡単に変換できるなら、私は新しい答えのもとに投稿します。 –

0

次のように試してみてください。

<script type="text/javascript"> 
     dojo.ready(function(){ 
var value = dojo.byId("comments").get('value') 
     dojo.byId("comments").set('value', value.replace(/<[^>]*>/g, '')) 

     }); 
    </script> 

    <div id="comments" name="comments" dojoType="dijit.form.SimpleTextarea" maxLength="900" style="width: 98%; padding-right: 4px; font-size: 1.2em;" aria-required="true" title="<fmt:message key="widget.content2" />"></div> 

ただし、いくつかの優れた機能を備えているため、新しいバージョンのdojoを使用するようにしてください。最初の答えはありがとうございました。ここ

OKはあなたに私の最後のポストと同様にhttps://jsfiddle.net/meesa41q/10/

+0

はあなたにManjunathaをありがとう...私は とタグを削除してテキストエリアの内容をprintlnをするために出力を期待して入力を持っていますが、上記のコードなしで、起きていないthatsの。私は交換がすべての内容を置き換えることを読むが、それは起こっていない..あなたは私を助けてくれますか? – Nature

0

ためjsfiddleですが、1.6.0

dojo.require("dijit.form.SimpleTextarea"); 
 
dojo.ready(function(){ 
 
    var comments = dijit.registry.byId('comments') 
 
    dojo.connect(comments, 'onKeyUp', function(){ 
 
    var value = comments.get('value') 
 
    comments.set('value', value.replace(/<[^>]*>/g, '')) 
 
    }) 
 
});
#comments { 
 
    width: 98%; 
 
    padding-right: 4px; 
 
    font-size: 1.2em; 
 
}
<script src='//ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojo/dojo.js' djConfig='parseOnLoad: true'></script> 
 
<script src='//ajax.googleapis.com/ajax/libs/dojo/1.6.0/dijit/dijit.js'></script> 
 

 
<div id="comments" name="comments" dojoType="dijit.form.SimpleTextarea" maxLength="900" aria-required="true"></div>