2016-11-11 14 views
1

2種類のラジオボタンがあります。javascriptによるテキストエリア検証

チェックLMSボタン場合は、テキストエリアのMAXLENGTHは90バイト

を設定し、チェックSMSボタン場合は、testareaのMAXLENGTHは2000バイト

を設定し、我々は「totalWordLimit」で、私はテキストエリアにテキストを入れてどのように多く確認することができます私はコピー&ペーストにより多くのテキストを置く場合

が、持っている問題

は、TEXTAREAが無効になって

また、ラジオボタンを変更すると、カウント数が初期化されません。

このコードで修正する必要があるのは?

<script type="text/javascript"> 
 

 
var setTotalNumberOfWordCounter = "90"; 
 

 
function displayWordCounter(){ 
 
var getTextValue = document.smsForm.msg.value; // Get input textarea value 
 
var getTextLength = getTextValue.length; // Get length of input textarea value 
 
var one_char = ""; 
 
var rbyte = 0; 
 
var rlen = 0; 
 
for(var i=0; i<getTextLength; i++){ 
 
\t one_char = getTextValue.charAt(i); 
 
\t if(escape(one_char).length > 4){ 
 
\t  rbyte += 2;        // special language(2Bytes) 
 
\t }else{ 
 
\t  rbyte++;        // 1Byte 
 
\t } 
 

 
\t if(rbyte <= setTotalNumberOfWordCounter){ 
 
\t  rlen = i+1;        //return text count 
 
\t } 
 
} 
 
if(rbyte > setTotalNumberOfWordCounter){  //compare this length with total count 
 
     getTextValue = getTextValue.substring(0,setTotalNumberOfWordCounter); 
 
     document.smsForm.msg.value =getTextValue; 
 
     return false; 
 
} 
 
\t document.smsForm.totalWordLimit.value = (setTotalNumberOfWordCounter-rbyte); 
 
\t var tt = document.getElementById("Textarea"); 
 
\t 
 
\t if(document.smsForm.totalWordLimit.value === "0"){ \t \t \t 
 
\t \t tt.value = tt.value.substring(0, tt.value.length-1); 
 
\t } 
 
} 
 

 
</script> 
 

 
<script type="text/javascript"> 
 
    function ShowHide() {   
 
     var Textarea = document.getElementById("Textarea");   
 
     if(document.getElementById('sms').checked) { 
 
     \t setTotalNumberOfWordCounter = "90"; 
 
     }else if(document.getElementById('lms').checked) { 
 
    \t \t setTotalNumberOfWordCounter = "2000"; 
 
     } 
 
      
 
    }  
 
    
 
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="radio" name="sms" id="sms" onclick="ShowHide()" value="ss" checked>SMS 
 
<input type="radio" name="lms" id="lms" onclick="ShowHide()" value="ll"> LMS 
 
<textarea name="msg" class="main_txt_area" id="Textarea" onkeydown="return displayWordCounter();" cols="40" rows="10" ></textarea> 
 
\t \t \t \t \t \t \t \t \t 
 
<script type="text/javascript"> 
 
\t \t \t \t document.write("<div class='total_count'>total remaining Charatctor: <input type='text' class='show_count' name='totalWordLimit' size=4 readonly value="+setTotalNumberOfWordCounter+"></div>"); 
 
</script>

答えて

0

この1

function ShowHide() {   
    var Textarea = document.getElementById("Textarea");   
    if(document.getElementById('sms').checked) { 
     Textarea.setAttribute("maxlength", "90"); 
    }else if(document.getElementById('lms').checked) { 
     Textarea.setAttribute("maxlength", "2000"); 
    } 

} 

を試してみて、答えをtextarea要素に

<textarea name="msg" class="main_txt_area" id="Textarea" onkeydown="return displayWordCounter();" cols="40" rows="10" onpaste="return displayWordCounter();"></textarea> 
+0

感謝をonpaste機能を試してみてください!!私は他の国の言語(1テキスト= 2バイト)を使用しているbcz maxlength関数を使用することはできません – user2458645