2011-12-24 12 views
4

を提出し、フォーム上のフィールドに文字を置き換え、「ジョン・ウェインは、」私はそれが「John_Wayne」に置き換えることがしたいと思う例えば

私はjQueryの、基本的な考え方を介してこれを達成することができます思っています次のとおりです。

$('#searchform').submit(function() { 

//take current field value 
//replace characters in field 
//replace field with new value 

}); 

ご迷惑をおかけして申し訳ございません。

答えて

10

あなたは関数を受け取りvalのオーバーロードを使用することができます:

$("input:text").val(function (i, value) { 
    /* Return the new value here. "value" is the old value of the input: */ 
    return value.replace(/\s+/g, "_"); 
}); 

(あなたはおそらくあなたのセレクタがinput:textより具体的にしたいと思う)

例:http://jsfiddle.net/nTXse/

+0

+1:過負荷が存在することはわかりませんでした。これはjQuery 1.4+に適しています。 –

+1

置き換えに 'g'グローバルを使ってはいけませんか? – Indranil

+0

@Indranil:あなたは本当に正しいです、私は 'flags'パラメータが非標準であったことを忘れてしまいました。訂正ありがとう! –

1

フォーム要素を個別に指定せずにすべてのフォーム要素を見たい場合は、次のようにすることができます。

$('#searchform').submit(function() { 
    $.each($(':input', this), function() { 
     $(this).val($(this).val().replace(' ', '_')); 
    }); 
}); 

あなたは要素の種類に注意を払わなければならない、となど、それが有効になって、目に見えるだと、特定の種類、かもしれない


EDIT:私はアンドリューの答えを使用します。これは私の頭の中に浮かぶ最初の解決策でした。これは最終的にフォームの各フィールドをわずかにコントロールすることができますが、Andrew'sは短くて甘いです。