2016-09-27 8 views
1

異なる入力フィールド(ほとんどがテキスト値)を含むHTMLフォームがありますが、余分な文字(たとえば%など)を入力するとすぐに取得できません。ここ入力フォームで特殊文字を取得する

は、HTMLフォームです:

<form id="myform" class="form-horizontal" action="javascript:notif()" > 
    <fieldset> 
    <div class="control-group"> 
     <label class="control-label" for="focusedInput">nom</label> 
     <div class="controls"> 
     <input name="nom" class="input-xlarge focused" id="focusedInput" type="text" value=""> 
     </div> 
    </div> 

    <div class="control-group"> 
     <label class="control-label" for="date01">Date</label> 
     <div class="controls"> 
     <input type="text" name="date" class="input-xlarge datepicker" id="date" value=""> 
     </div> 
    </div> 

    <div class="control-group"> 
     <label class="control-label" for="focusedInput">Titre</label> 
     <div class="controls"> 
     <input name="page" class="input-xlarge focused" id="focusedInput" type="text" value=""> 
     </div> 
    </div> 
... 

とJavascriptのフィールドを取得するために:

var s_data = $('#myform').serializeArray(); 
      $.get("webAdd?nom="+s_data[0].value+"&date="+s_data[1].value+"&titre="+s_data[2].value+"&message="+s_data[3].value+"&page="+s_data[4].value+"&commentaires="+s_data[5].value,function(response) {}); 

私の問題は非常に簡単ですが、私はそれを解決することはできませんよ。できるだけ早くs_data [x]フィールドのいずれかに、「25%割引」などのテキストが含まれ、取得されるテキストフィールドはnullです。

他の目的には%文字が使用されていますが、特殊文字でフィールドを取得するにはどうすればよいですか?

+0

'webAdd'がこのフォームに入力されたデータを処理している(データを保存するだけである)場合は、GETの代わりに実際にPOSTを使用するべきです。そうすれば、POST本体の書式の柔軟性が増し、GET urlパラメーターを使用するときに発生するいくつかの問題を避けることができます。非常に基本的な情報については、[GETとAjaxのPOST](http://stackoverflow.com/q/715335/17300)を参照してください。 –

答えて

1

ウェブURLをリクエストしているので、ユーザー入力をエンコードする必要があります。そうしないと、URLが正しく解析されません。これを行うには、それぞれs_data[0].valueencodeURIComponentに囲み、encodeURIComponent(s_data[0].value)のようにします。 これは、特殊文字を壊さずにURLの一部にすることができるように特殊文字をエンコードします。

$.get("webAdd?nom="+encodeURIComponent(s_data[0].value)+"&date="+encodeURIComponent(s_data[1].value)+"&titre="+encodeURIComponent(s_data[2].value)+"&message="+encodeURIComponent(s_data[3].value)+"&page="+encodeURIComponent(s_data[4].value)+"&commentaires="+encodeURIComponent(s_data[5].value),function(response) {});

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent

0

あなたはjQueryのに渡されたクエリ文字列をエンコードする必要がありますが、フォームの入力を使用すると、クエリ文字列で使用している名前を持っているとして、あなたはjQueryのを許可すれば、これはまっすぐでなければなりません見て

関連する問題