Django多HTML表单jquery选择器
因此,我有一些模板逻辑,可以从我传递的字典中为每个键创建一个HTML表单:Django多HTML表单jquery选择器,jquery,html,django,forms,Jquery,Html,Django,Forms,因此,我有一些模板逻辑,可以从我传递的字典中为每个键创建一个HTML表单: {%if students%} {%for data,student in students.iteritems%} <form onsubmit = "return false;" id="{{forloop.counter}}"> {% csrf_token
{%if students%}
{%for data,student in students.iteritems%}
<form onsubmit = "return false;" id="{{forloop.counter}}">
{% csrf_token %}
<tr>
<td>{{student.name}}</td>
{%ifequal student.grade ' '%}
<td><input type=text size="1" id ='Grade' name='Grade' maxlength="1" /></td>
<td><input type=text size="50" id = 'Feedback' name='Feedback' /></td>
{%else%}
<td><input type=text size="1" id ='Grade' name='Grade' maxlength="1" value = "{{student.grade}}"/></td>
<td><input type=text size="50" id = 'Feedback' name='Feedback' value = "{{student.feedback}}"/></td>
{%endifequal%}
<td><button type='submit' class="radius button success medium" onclick=submitGrade("{{forloop.counter}}")>Save</button></td>
<td><img src="{% static "img/check.png" %}"></td>
<td><input type=hidden id = 'email' name = "email" value = "{{student.email}}"></td>
</tr>
</form>
{%endfor%}
</form>
{%endif%}
{%if students%}
{%用于数据,学生在学生中。iteritems%}
{%csrf_令牌%}
{{student.name}
{%ifequal student.grade'%}
{%else%}
{%endifequal%}
拯救
{%endfor%}
{%endif%}
这将创建n个表单,第一个表单的id为1,第二个表单的id为2。,第n个是n。现在,当我在chrome中打开javascript控制台并尝试执行
$('#1')
时,例如,它返回的是[]代码>。由于某种原因,
未与表单关联。当我尝试从javascript控制台运行$(“#Grade')
时,它会显示[]
这是我希望为第一个表单的成绩输入呈现的内容。为什么输入字段没有与其各自的表单相关联?ID应该是唯一的。看起来您没有在
ID中使用forloop.counter
。这意味着您的for
循环正在复制Id=“Grade”
和id=“feedback”
作为每个表单的输入id。此外,使用JQuery选择id只会处理找到的id的第一个实例,除非它是通过.find()
-即$('#form1').find('input[id=“1]”)捕获的。
例如:
应该是:
而id=“feedback”
////////
此外,使用命名ID可能更好一些,例如:
更适合以下情况:
因此,可以通过编写$('#form1')
或$('#form2')
等来捕获id。嘿,我按照您的要求做了,但它并没有解决问题。我想出于某种原因,模板标记会与您尝试的jqueryID混淆:$('#2')。查找('#等级')
(使用您的代码)或$('#form2')。查找('#等级)
(使用我的代码)?是的,$(“#form2”).find(“#grade2”)
return[]您是否在if
和else
语句输入ID中都放置了forloop.counter
?此外,您的html文件末尾似乎有一个额外的
标记-如果没有开始标记,请删除该标记。