我有Django的创建modelChoiceField:选择:输出搞砸
lawsToValidate=forms.ModelChoiceField(queryset=LawsIdsModel.objects.filter(validated=0).values("releveAnnee", "releveMois", "noOrdre"), widget=forms.Select(attrs={'onchange': 'javascript: lawToValidateDisplay(this.value);'}))
Django的代码创建这个网站码:
<option value="{'releveMois': 1L, 'noOrdre': 2L, 'releveAnnee': 2009L}">{'releveMois': 1L, 'noOrdre': 2L, 'releveAnnee': 2009L}</option>
Django的代码调用我的jQuery功能在点击下拉列表之后。如果我显示我的javascript功能选择的值,这里是我有:
{'releveMois': 1L, 'noOrdre': 3L, 'releveAnnee': 2009L}
我如何得到jQuery的/ JavaScript的这条巨蟒dictionnary的信息。如何获得相关信息,相关信息,无关紧要?如果我尝试jQuery.parseJSON,它不起作用!
编辑: 有了下面的评论,我明白,最好是改变html输出。这里是我的模板代码来生成下拉列表:
<div id="lawsToValidateChoice" class="fieldWrapper">
{{ form.lawsToValidate.errors }}
<select onchange="javascript: lawToValidateDisplay(this.value);" name="lawsToValidate" id="id_lawsToValidate">
<option value="" selected="selected">Select a law to validate</option>
{% for law in form.lawsToValidate.field.queryset %}
<option value="{{ law.releveAnnee }},{{ law.releveMois }},{{ law.noOrdre }}">releveAnnee={{ law.releveAnnee }}, releveMois={{ law.releveMois }}, noOrdre={{ law.noOrdre }}</option>
{% endfor %}
</select>
</div>
没问题了解析值!解决了!
以我modelChoiceField,我有:插件= forms.Select(ATTRS = { '平变化': '的javascript:lawToValidateDisplay(THIS.VALUE);'})。在点击下拉列表后,javascript函数被调用。我必须改变它来应用你的代码还是有其他方法? – rom
@rom:这是JavaScript端,我发布的是* server *(python代码)生成的内容。你是说你的html select值是你在问题中发布的吗? –
是的!我想我应该改变这个,因为这很丑陋。我只是不知道该怎么做,并认为这不会是一个问题。 – rom