2011-12-04 6 views
1

データベースからのテキストボックスにテキストが表示されています。この値は、1つのJs関数を使用してテキストボックスに設定します。問題は、DBからの文字列が"My  Name"であることです。テキストボックスでは"My Name"と表示されますが、"My  Name"と表示されます。テキストボックスが表示されます 

この問題を解決するにはどうすればよいですか?次のようにテキストボックスの

私のHTMLは、

<input type="text" class="textfield" id="searchText"> 

です。注:DBから返された値を変更することはできません。 javascript-> java-> ORACLEを使用してDBから値を取得します。

+0

あなたがPHPを使用している場合は、 '使用html_entity_decode'ときデータベースから引き出します。 – MacMac

+0

ありがとう、Dave Newton – Ramnath

答えて

1
$("#searchText").val($("<div>").html(database.data).text()); 

これは一時的な要素を作成し、データベースの文字列とその.html()を充填することによって動作します。次に、未加工の.text()が抽出され、入力要素に渡されます。 HTMLエンティティは対応する文字に置き換えられます。

これは醜いハックです。代わりにデータベース値を修正することを強くお勧めします。

1

あなたは、サーバー側でそれを変更できない場合は、JavaScriptで文字列をデコードする必要があります。

var foo = Encoder.htmlDecode(stringValueFromDb); 

問題は、DBは、値がHTMLエンコードされたことを想定していた場合、それはすでにサーバー側起こる場合を除き、あなたは、そのどこかあまりにも行う必要がありますということです。

1

テキストボックスはHTML書式を理解できません。あなたはGIGO - ゴミ出しのごみを聞いたことがありますか? dbが正しい値を保持していることを確認してください。

その他のハックは、スペースで を置換する文字列の解析関数を使用することができます。

0

データベースから情報を取得するために使用している機能は何ですか?

"My&nbsp; Name"がデータベース内にある場合は、HTMLタグを取り除く必要があります。

"My Name"がデータベース内にある場合は、html_entity_decodeのような機能を削除する必要があります。

+0

(a)HTMLタグはありません。 (b) 'html_entity_decode'は前者の場合は使用し、後者の場合は使用しないでください。 –

0

あなたはちょうどあなたが値を代入する前にhtmldeDecodeを行う必要があります。

function htmlDecode(value){ 
    return $('<div/>').html(value).text(); 
} 

$('#searchText').val(htmldeDecode('My&nbsp; Name')) 

あなたはjqueryのメソッドを使用したくない場合は、あなたのようないくつかのカスタムhtmlDecode方法を見つけることができ、

JavaScript html_entity_decode

関連する問題