我有一个从数据库生成的表单。在数据库中,我有一些字符串,例如'Española',它将成为下拉菜单中的选项。
我的html看起来像:
<option value="Española">Española</option>
我将这些值用于表单的动态部分,我需要从中发送AJAX请求。
我可以看到,使用IE时,标题就像这样:
GET /collections/find_island?island_group=Espa�ola HTTP/1.1" 500 63206
应该是:
GET /collections/find_island/?island_group=Espa%C3%B1ola HTTP/1.1" 200 164
由其他浏览器生成。
我有什么方法可以在我的模板中获得此输出:
<option value="Espa%C3%B1ola">Española</option>
任何帮助都非常感激。
编辑:
我的表格:
def form(forms.Form):
...
island_group = forms.ModelChoiceField(
required=False,
label=ugettext_lazy('Island Group'),
initial=None,
queryset=Localityonline.objects.values_list('islandgroup', flat=True).distinct('islandgroup').order_by('islandgroup'),
empty_label=ugettext_lazy("Not Specified"),
widget=forms.Select(attrs={"class":'searchfield', "onChange":'getIslandName()'})
)
javascript:
function getIslandName(lang) {
var islandGroup = document.getElementById("id_island_group").value;
if (islandGroup == '') {
// if Not Specified re-selected then set data to null and bypass updatePage()
var data = null;
update_select($('select[name=island_name]'), data);
}
else {
var url = "../collections/find_island?island_group=" + islandGroup;
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
}
}
答案 0 :(得分:1)
您可以在javascipt中调用encodeURI
来提供您要查找的编码值。也许mozilla和chrome会自动执行它并且IE不会????
encodeURI('Española')
// "Espa%C3%B1ola"
var url = "../collections/find_island?island_group=" + encodeURI(islandGroup);
或编码整个网址我不知道哪个更有意义......
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI