2017-09-14 12 views
0

以下は、テキストエリアが自動的に作成されるコードです。しかし、私はこのテキストエリアでコンマを無効にしたいので、私は以下のjavascript関数を使用しています。テキストエリアでカンマを無効にできません

$(document).ready(function(){ 
 
    
 
     var counter = 1; 
 
     var val; 
 
    
 
     $("#addButton").click(function() { 
 
    
 
     \t var person = prompt("Please enter the Field name:", ""); 
 
     \t if (person == null || person == "") { 
 
     \t   
 
     \t \t return false; 
 
     \t  } else { 
 
     \t   
 
     \t   val = person; 
 
     \t  } 
 
    if(tabid == "menu4"){ 
 
    \t return false; 
 
    } 
 
    \t //alert(tabid); 
 
     \t var newTextBoxDiv0 = $(document.createElement('div')) 
 
     .attr("class", 'form-group row') 
 
     .attr("id",'form1ac' + counter); 
 
     \t 
 
     newTextBoxDiv0.after().html('<div class="col-xs-1"><input type="button" value="delete" onclick= rem(form1ac'+counter+')></div><div class="col-xs-1"><button type="button" class="btn btn" name="" id="buttonl" style="width: 170px;height:45px;background-color:#dcdcdc;color:black;">'+val+'</button><input type="hidden" name="buttonl" form="form1" value='+val+'></div><div class="col-xs-2"></div><div class="col-xs-4"><div class="form-group"><textarea form="form1" name="df" id="df" oninput = "this.value = this.value.replace(/[,]/g, "2")" ></textarea></div><input form="form1" type="hidden" name="tabid" value='+tabid+'></div>'); 
 
     newTextBoxDiv0.appendTo('#'+tabid); 
 
     
 
     counter++; 
 
     }); 
 
    
 
     
 
     
 
     
 
     $("#removeButton").click(function() { 
 
     \t if(counter==1){ 
 
        alert("No more textbox to remove"); 
 
        return false; 
 
       } 
 
    
 
     \t counter--; 
 
     \t 
 
       $("#form1ac" + counter).remove(); 
 
    
 
      }); 
 
    
 
     
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea form="form1" name="df" id="df" oninput = "this.value = this.value.replace(/[,]/g, "2")" ></textarea>

上記のjqueryのコードが動的に完璧に動作ラベルオプションで新しいテキストエリアを作成します。しかし、私は完璧に動作していない上記のJavaScriptコードでコンマを無効にしようとしています。

私を助けてください!

+0

以下の使用*は、* - だから、何をしているのですか?あなたの質問を編集して、希望する動作と実際の動作を記述してください。 (要素の '.value'を、カーソルを最後まで移動させる傾向のあるユーザー型として設定したい場合、既存の値を非常に注意深く編集することに注意してください)。最も簡単な解決策は、' blur ') – nnnnnn

+2

あなたのコードで位置揃えを修正するか、実際の機能を実現するように修正してください。 - [最小限の検証可能な例を作成する方法](https://stackoverflow.com/help/)を参照してください。 mcve)。また、「完全に動作しない」という意味を説明してください。 – theFunkyEngineer

答えて

1

あなたはカンマを入力するようにユーザーを防ぎたい場合は:あなたのhtmlに構文エラーがあり

<textarea class="no-comma"></textarea> 

そして

$(function() { 
    $('textarea.no-comma').on('keydown', function(e) { 
     if (e.keyCode == 188 || e.keyCode == 110) { // thats a comma 
      e.preventDefault(); 
     } 
    }).on('change input', function() { 
     var self = $(this); 
     self.html(self.html().replace(new RegExp(',', 'g'),'')); // Remove all commas. 
    }); 
}) 
+0

これは、ユーザがクリップボードを介してコンマを入力したり、「n」ドロップをドラッグすることを止めるものではありません。 – nnnnnn

+0

私の編集をチェックしますか? –

0

"2")" >

であるべき'2')" >

<textarea form="form1" name="df" id="df" oninput = "this.value = this.value.replace(/[,]/g, '2')" ></textarea>

0
コードの下の代わりに

<textarea form="form1" name="df" id="df" oninput = "this.value = this.value.replace(/[,]/g, "2")" ></textarea> 

"完璧に動作していない" コード

<textarea form="form1" name="df" id="df" oninput = 'this.value = this.value.replace(/[,]/g, "2")' ></textarea> 
関連する問題