Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在Django生成的选择字段中设置名称属性_Html_Django_Forms - Fatal编程技术网

Html 在Django生成的选择字段中设置名称属性

Html 在Django生成的选择字段中设置名称属性,html,django,forms,Html,Django,Forms,我正在尝试使用Django编写表单,但无法设置Select字段的名称 class MyForm(forms.Form): successor = forms.ChoiceField(widget=forms.Select( attrs = {'name': 'to_player', 'onclick':'this.form.submit();'} ) ) 给出此输出: <label for="id_successor">Success

我正在尝试使用Django编写表单,但无法设置Select字段的名称

class MyForm(forms.Form):
    successor = forms.ChoiceField(widget=forms.Select(
        attrs = {'name': 'to_player', 'onclick':'this.form.submit();'}
        )
    )
给出此输出:

<label for="id_successor">Successor:</label>
<select id="id_successor" name="successor" onclick="this.form.submit();"></select>
继任者:

但是应该是name=“to_player”而不是name=“继任者”。为什么?

我认为不能使用
attrs
覆盖
name
属性,因为小部件的呈现方式。但是,如果您签出,您将发现一个包装器函数,它允许您指定自己的name属性

我使用javascript解决了这个问题。

您可以在表单中添加id属性:

class MyForm(forms.Form):
    successor = forms.ChoiceField(widget=forms.Select(attrs = {'id':'id_player', 'name': 'to_player','onclick':'this.form.submit();'} ))
在模板的末尾,您可以放置以下javascript代码:

<!DOCTYPE html>
<html>
<head>
...
</head>

<body>
...
...
<script type="text/javascript">
$(document).ready(function(){ 
document.getElementById('id_player').name = 'to_player';
});
</script>

</body>
</html>

...
...
...
$(文档).ready(函数(){
document.getElementById('id_player')。name='to_player';
});
这样我就解决了这个问题,而且100%有效


祝你今天愉快

你的问题有一个简单得多的答案。查看[此][1]帖子。。[1]: