2013-06-26 78 views
9

我需要將結果數據集中的值附加到input,該值可能有任何特殊字符,如*^&$#>,'"等。問題是我無法附加整個var進入input。請致電this fiddle。我錯過了什麼?將單引號和雙引號添加到文本框

不能使用.find.appendthis one

+0

我concateating'var',最後我將它附加到某個div。請看下面的示例。 'uques + =「 (「+ character +」characters)「; ' –

回答

2

所以要解決,而無需使用.find或追加var seperately這個問題,我發現這個簡單的解決方案。我只是需要與它的ISO拉丁語代碼'和其他特殊字符各自的代碼來代替single quote」,然後使用該變量在.html

var something= "this is vicky\"s \"s 's 's \"s \"S"; 
test=something.replace(/'/g,"'").replace(/"/g,'\\"'); 
$("#test").html("hey this is <input id='testbox' value='"+test+"'></input>"); 

看一看this jsfiddle

3

這是因爲您要連接字符串,而不會考慮轉義特殊字符。您應該使用.val來設置值,以便正確轉義該值。此外,正則表達式是不必要的。

$(document).ready(function(){ 
    var test= "this is vicky\"s \"s 's 's \"s \"S"; 

    alert(test); 

    var input = $("<input style='width:700px;' id='testbox'></input>").val(test); 

    $("#test").html("hey this is ").append(input); 

}); 

updated test case on jsFiddle

+0

'unescape'用於再次將百分比編碼的ASCII值轉換爲ASCII字符。由於這裏沒有百分比編碼的值,所以不需要使用unescape,它只是在這裏做_nothing_。 – CBroe

+0

@CBroe或*糟糕*如果*是*''''''''' –

+0

問題是我有很多情況下(switch cases) ...) 所以對於文本框太我不斷加起來的字符串,我是concatinating這個變量,最後我追加 它的股利。 只要看到一個樣本案例 –