2016-06-28 4 views
0

У меня есть простой HTML-элемент ввода:Чтение значений, разделенных запятыми в HTML форме

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

Это поле может иметь значения, разделенные запятыми, например, ABC, DEF, GHI. Значение поля при отправке должно быть точно таким же, как при вводе. Однако, когда я печатаю значение поля на консоли, я получаю

ABC%2C+DEF%2C+GHI.

ABC, DEF, GHI Я хочу

Я пытался что-то вроде decodeURIComponent и accept-charset="ISO-8859-1" для формы, но они не работают. Как я могу предотвратить кодирование запятых и пробелов? Заранее спасибо!

+0

если вы отправляете данные, он будет закодирован .. вам нужно использовать decodedURIComponent при получении данных, а затем разделить Это. –

+0

decodeURIComponent правильно декодирует запятые, но оставляет знаки «+» для пробелов, поскольку они – user3033194

ответ

1

До завершения заполнения, закодировать значение и оно должно работать, в соответствии с моим испытанием

<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,' ')) 

, где ул = ABC%2C+DEF%2C+GHI. Недостаточно только decodeURIComponent. Надеюсь, поможет!

Смежные вопросы