2016-06-28 214 views
0

我有一個簡單的HTML輸入元素:讀逗號分隔值

<input type="text" class="form-control" name="value"> 

此字段可具有逗號分隔的值例如ABC, DEF, GHI。提交時的字段值必須與輸入時的字段值完全相同。但是,當我將字段值打印到控制檯時,我得到

ABC%2C+DEF%2C+GHI

我想ABC, DEF, GHI

我試着像decodeURIComponentaccept-charset="ISO-8859-1"的形式的東西,但他們沒有工作。我怎樣才能防止逗號和空格的編碼?提前致謝!

+0

如果你發送的數據,將編碼的..你需要,當你接收到的數據,然後分割使用decodedURIComponent它。 –

+0

decodeURIComponent正確解碼逗號,但保留空格的+號,因爲它們是 – user3033194

回答

1

submiting之前,編碼值,它應該工作,根據我的測試

<form id="myForm" action="form.php" method="GET"> 
    <input id="encodeMe" name="string" value="this will be encoded correctly" /> 
    <input type="submit" value="OK" /> 
</form> 

$('#myForm').submit(function() { 
    var enc = escape($("#encodeMe").val()); 
    $("#encodeMe").val(enc); 
}); 
+0

這是[棄用](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape )。 –

0

好吧,我明白了。在JavaScript中,輸入字段必須如此處理:

decodeURIComponent(str.replace(/\+/g,' ')) 

其中str = ABC%2C+DEF%2C+GHI。只有decodeURIComponent是不夠的。希望能幫助到你!