我有一个HTML表单,其中包含不同的输入字段(其中大多数是文本值),但是一旦填充了多余的字符(例如,%),便无法检索它。
这是HTML表单:
<form id="myform" class="form-horizontal" action="javascript:notif()" >
<fieldset>
<div class="control-group">
<label class="control-label" for="focusedInput">nom</label>
<div class="controls">
<input name="nom" class="input-xlarge focused" id="focusedInput" type="text" value="">
</div>
</div>
<div class="control-group">
<label class="control-label" for="date01">Date</label>
<div class="controls">
<input type="text" name="date" class="input-xlarge datepicker" id="date" value="">
</div>
</div>
<div class="control-group">
<label class="control-label" for="focusedInput">Titre</label>
<div class="controls">
<input name="page" class="input-xlarge focused" id="focusedInput" type="text" value="">
</div>
</div>
...
和Javascript来检索字段:
var s_data = $('#myform').serializeArray();
$.get("webAdd?nom="+s_data[0].value+"&date="+s_data[1].value+"&titre="+s_data[2].value+"&message="+s_data[3].value+"&page="+s_data[4].value+"&commentaires="+s_data[5].value,function(response) {});
我的问题很简单,但是我无法解决:只要s_data [x]字段中的任何文本包含诸如“ 25%折扣”之类的文本,检索到的文本字段就为空。
我知道%字符用于其他用途,但是如何检索带有任何特殊字符的字段?
最佳答案
由于您请求的是网址,因此需要对用户输入进行编码。否则,URL将被错误地解析。为此,将每个s_data[0].value
像这样encodeURIComponent
包裹在encodeURIComponent(s_data[0].value)
中。
这将对特殊字符进行编码,以便它们可以作为url的一部分而不会破坏它。$.get("webAdd?nom="+encodeURIComponent(s_data[0].value)+"&date="+encodeURIComponent(s_data[1].value)+"&titre="+encodeURIComponent(s_data[2].value)+"&message="+encodeURIComponent(s_data[3].value)+"&page="+encodeURIComponent(s_data[4].value)+"&commentaires="+encodeURIComponent(s_data[5].value),function(response) {});
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
关于javascript - 以输入形式检索特殊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39734693/