1

私はいくつかのグーグルをしましたが、これを機能させることができませんでした。私がしなければならないことは、フォームのすべての TEXT フィールドを調べて、「,」(コンマ) のすべてのインスタンスを「 & # 4 4 ;」に置き換えることです。(エスケープされたコンマ) 送信時。

フォームタグは次のとおりです。

<form name="buildcourse" id="buildcourse" action="target.htm" method="post" enctype="multipart/form-data" onsubmit="validateForm()">

そして、ここに私のJavaScript関数があります:

<script language="javascript">
function validateForm(buildcourse){
    $('form input[type="text"]').each(function(){
        this.value = replace(",","&#44;");
    });
}
</script>

それを機能させるための助けが大好きです。申し訳ありませんが、私は完全に Javascript に不慣れです。

4

2 に答える 2

2

これを行うと、分割してcommasから再参加できます"&#44;"

$('form input[type="text"]').each(function(){
    this.value = this.value.split(',').join('&#44;')
});

純粋なJavaScripthttp ://jsfiddle.net/mQrLS/3/

var theInputs = document.getElementsByTagName('input');  
for (var i = 0; i < theInputs.length; i++) {
    var node = theInputs [i];

    if (node.getAttribute('type') == 'text') {
        // using split
        //node.value = this.value.split(',').join('&#44;');
        // using regex
        node.value= node.value.replace(/,/g,'&#44;');
    }
} 

@Raduが述べたように、正規表現での置換はより高速に実行されます

于 2012-06-13T17:44:53.303 に答える
2

コードの問題は、グローバルな置換関数がないことです。ただし、任意の文字列のメソッドとして使用できます。

<form name="buildcourse" id="buildcourse" action="target.htm" method="post" enctype="multipart/form-data">

(インラインイベントバインディングを取り出しました)

$('#buildcourse').submit(function() {
    $('form input[type="text"]').each(function(){
        this.value = this.value.replace(/,/g, '&#44;');
    });
});​
于 2012-06-13T17:51:52.683 に答える