1

フォームを反復処理し、特定のフィールドのスペースのインスタンスを + に置き換えようとしています。値を直接変更できるようですが、その値内のスペースのインスタンスを置き換えることはできません。

以下の私のコードを見てください:

$('#search-form').bind('submit', function(){

  var params = new Array();

  $.each($(this).serializeArray(), function(i, field){

       if(field.name == 'submit' || field.name == 'reset') return;

       if(field.name == 'location' && field.value.indexOf(' ')>=0)
       {
            // this is where I am struggling
            this.value.replace(/ /g,"+");
            alert(this.value);
       }                    

       params.push(field.name + '=' + encodeURIComponent(field.value));

  });

  do_search(params.join('&'));

  return false;
});

どんな助けでも大歓迎です。

ありがとう

*編集 助けてくれてありがとう。今日、.replace について新しいことを学びました。

4

1 に答える 1

1

値に置換を割り当てる必要があります

だから代わりに

this.value.replace(/ /g,"+");

に変更します

this.value = this.value.replace(/ /g,"+");

全体がこのように見えるかもしれません

$('#search-form').bind('submit', function(){

  var params = new Array();

  $.each($(this).serializeArray(), function(i, field){

       if(field.name == 'submit' || field.name == 'reset') return;

       if(field.name == 'location' && field.value.indexOf(' ')>=0)
       {
            // this is where I am struggling
            field.value = field.value.replace(/ /g,"+");
       }                    

       params.push(field.name + '=' + encodeURIComponent(field.value));

  });

  do_search(params.join('&'));

  return false;
});
于 2013-10-09T21:50:19.137 に答える