2009-08-21 14 views
1

「a d」(スペースd)と入力すると、.valはプラス記号を使用して+ dを返します。私は 'd'の実際の文字列が必要ですか?これはどうすればいいですか?jQuery texbox .val()は空白に+記号を返します

HTMLテキストボックス

<input type="text" name="term" value="" id="term" title="term" size="30px"/> 

jQueryの

function() { $('#results').load('search.aspx', $('#term').val()); } 

答えて

0

サーバーでデコードする必要がある場合があります。 ASP.NETでServer.UrlDecode()あなたのためになります。 PHPでurldecode機能もあります。

http://us2.php.net/manual/en/function.urldecode.php

+0

すべての回答に感謝します。 server.urldecodeはジョブを実行します。唯一の問題は、誰かが検索に+を入力した場合です。 –

+1

これはJS encodeURIComponent()が便利な部分です;-) – JorenB

+0

サーバーとクライアントのURLのエンコードとデコードを正しく処理している場合は、ユーザーが何を入力するかは関係ありません。 HTML入力で非英数字フィールドを完全にテストすることは、あらゆるWebアプリケーションのテストに不可欠です。 –

0

.LOADは、Ajaxメソッドの単なる抽象化され、search.aspxに送信されますと値はURLがエンコードされています。あなたはfirebug(または同等のもの)でエンコーディングに気づいていますか、またはsearch.aspxページに値を格納しているときは?

1

私は.val()は完全に文字列を返しますが、AJAXモジュールは、あなたのデータにいくつかのURLエンコードを行うことをかなり確信しています。私はこの問題にもどこかで遭遇しました...しばらくお待ちください、私はその時私が使用した解決策を見つけようとします。

編集:frmは明らかに、自分のフォームで

var data = ''; 
for(var i = 0; frm.elements[i] != undefined; i++) { 
    data += frm.elements[i].name + '=' + encodeURIComponent(frm.elements[i].value); 
    if(frm.elements[i + 1] != undefined) data += '&'; 
} 

れる:

これは私のためにフォームをシリアル化するコードの一部です。唯一の文字列を提出する場合は、おそらくencodeURIComponent() -functionが必要です。

関連する問題