2009-08-28 6 views
0

を含める:のHTMLテキストボックスの値Iが動的にJavaScriptでテキストボックスの値を割り当てる ""

var html = ''; 
for(var s=0; s++ ; s<10){ 
    html += '<input type="hidden" name="hfstepDescription'+s+'" id="hfstepDescription'+s+'" value="'+ sstepDescriptionHTML +'">'; 

} 

sstepDescriptionHTMLのconntentこの

<input type="hidden" name="hfstepDescription11" id="hfstepDescription11" value="test1 <div class="">context1</div>"> 

を好むかもしれない。しかし、私はdocument.getElementById('hfstepDescription11').value を使用するとき、私はTEST1 <div class=になるだろう、ではありませんtest1 <div class="">context1</div>

正しい値を取得する方法 - >test1 <div class="">context1</div>

+0

エスケープクォート(属性値のコンテキストを中断しないように) – kangax

+0

なぜこの質問はコミュニティのWikiですか? –

答えて

0

私はsstepDescriptionHTMLをどこで設定しているのかわかりませんが、本当に<input>の値をHTMLエンコードする必要があります。値は二重引用符で囲まれたものだけになるため、返されるのはなぜですか?test1 <div class=

JavaScript's escape() functionを参照してください。

0

divのclass属性の場合は、二重引用符を一重引用符で置き換える必要があります。私は、テキストボックスの値をエンコードするために)(エスケープを使用

<input type="hidden" name="hfstepDescription11" id="hfstepDescription11" value="test1 <div class=''>context1</div>" /> 
0

、その後、私は正しい値

$ strの= uniDecode($ strのを、」得ることができますテキストボックスの値をデコードするには、以下の

をPHPコードを使用してビッグ-5 ');

function uniDecode($ str、$ charcode){ $ text = preg_replace_callback( "/%u [0-9A-Za-z] {4} /"、toUtf8、$ str); 戻り値mb_convert_encoding($ text、$ charcode、 'utf-8'); } 関数toUtf8($ ar){ foreach($ ar as $ val){ $ val = intval(substr($ val、2)、16); if($ val < 0x7F){// 0000-007F $ c。= chr($ val); } elseif($ val < 0x800){// 0080-0800 $ c。= chr(0xC0 |($ val/64)); $ c。= chr(0x80 |($ val%64)); } else {// 0800-FFFF $ c。= chr(0xE0 |(($ val/64)/ 64)); $ c。= chr(0x80 |(($ val/64)%64)); $ c。= chr(0x80 |($ val%64)); } } return $ c; }

1

問題がコードされている正しい値を得ることができ、テキストボックスの値を復号化します。値に同じ文字が含まれている場合は、基本的にそれをエンコードするか、値を設定する必要があります。

あなたは、2つの異なるパスを選択することができます。

最初のオプションは、生成されたHTMLにそれを挿入する前に値をエスケープすることです:

var escapedValue = value.replace(/&/, "&amp;").replace(/\"/, "&quot;"); 

html += "<input type=\"hidden\" name=\"test\" id=\"test\" value=\"" + value + "\"/>"; 

別のオプションは、にあなたのHTMLを追加した後に値を設定することですDOM:

document.getElementById("test").value = value; 
関連する問題