Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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/8/svg/2.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
JavaScript只读属性不工作_Javascript_Jquery_Django - Fatal编程技术网

JavaScript只读属性不工作

JavaScript只读属性不工作,javascript,jquery,django,Javascript,Jquery,Django,我的代码中有一个字段是只读的,但是它只是使字段变灰,并且该字段仍然可以编辑。我做错了什么 我在表单中使用的字段是Django crispy字段 表格的代码 <form action="" method="POST"> {% csrf_token %} <div class="row"> <div class="col-3"> {{form.class_name|as_crispy_field

我的代码中有一个字段是只读的,但是它只是使字段变灰,并且该字段仍然可以编辑。我做错了什么

我在表单中使用的字段是Django crispy字段

表格的代码

 <form action="" method="POST">
       {% csrf_token %} 
      <div class="row"> 
        <div class="col-3">
          {{form.class_name|as_crispy_field }} 
          </div>
        <div class = "col-3">
          {{form.date|as_crispy_field }}
          </div>
        <div class = "col-3">
        {{form.week_of|as_crispy_field }}
          </div>
          <div class = "col-3">
             {{form.day|as_crispy_field }}
             </div>
       </div>
        <div class="row"> 
        <div class="col-3">  
          {{form.student_name|as_crispy_field }} 
          </div>
         <div class = "col-3"> 
          {{form.time_frame|as_crispy_field }}
        </div>
        <div class = "col-3">
        {{form.behavior|as_crispy_field }}
         </div>
         <div class="col-3" >
        {{form.academic|as_crispy_field }}
         </div>
         </div>
         <div class="row">
         <div class = "col-3">
             <button type="submit" class="btn btn-success" ><i
                class="fas fa-star"></i> Level Up</button>
      </form>
                 </div>
                  </div>

</div>    


{%csrf_令牌%}
{{form.class_name}as_crispy_field}
{{form.date}as|u crispy_field}
{{form.week|as|u crispy_field}
{{form.day}as|u crispy_field}
{{form.student|u name|as_crispy_field}
{{form.time|u frame|as_crispy_field}}
{{form.behavior}as_crispy_field}
{{form.academic}as|u crispy_field}
升级

const student_name=“{{student_id}}”;
var studentnamedropdown=document.getElementById('id_student_name');
对于(i=0;i
使用prop设置只读

$(“#测试”).prop(“只读”,true)

我认为jQuery
.attr
.prop
在这里出现了一些混淆

在纯JavaScript中,它将是

document.getElementById('id_student_name').readOnly = true

“但是它只是使字段变灰”好的,那么问题是什么呢?一些浏览器使“只读”字段变灰。我认为Firefox会,但Chrome不会。请参阅:我仍然可以编辑该字段。我不想编辑它。我也尝试了prop方法,该字段将不再是灰色的,仍然可以编辑。它在snipplet中运行良好,因此不确定有什么不同。区别在于我使用的是django表单字段,而不是reg html字段。“而不是reg html字段。”这些字段是什么?当你问问题的时候,你需要详细说明这些东西。是的,那是我的错,我忘了写。我现在添加了它。这在我的其他脚本中以这种方式工作,使用reg javascript。但是在当前发布的脚本中没有成功地做到这一点。这很奇怪。这绝对有效。您可以在控制台中检查
document.getElementById('id\u student\u name')的输出。可能是其他框架篡改了它?不同的是这些字段是关系字段,它们是下拉列表。所以我不知道这是否有区别。
document.getElementById('id_student_name').readOnly = true