Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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问题)getElementById无法获取元素,即使我可以在Chrome inspector中看到它_Javascript_Django Templates_Getelementbyid - Fatal编程技术网

(Javascript问题)getElementById无法获取元素,即使我可以在Chrome inspector中看到它

(Javascript问题)getElementById无法获取元素,即使我可以在Chrome inspector中看到它,javascript,django-templates,getelementbyid,Javascript,Django Templates,Getelementbyid,各位, 我正在用Django编写一个Web应用程序。 我的问题实际上是在其中一个模板中,我创建了一个javascript函数来将信息从一个表单复制到另一个表单 我试图从p标签复制两个值,一个正常,另一个不正常 所以,这就是我所拥有的。 这是我的第一个表单,在其中我加载了一个带有联系人姓名和文档ID的表。 此外,在这个表中,每个寄存器的第一列是一个单选按钮,我将onchange事件设置为javascript函数“copyContact” 该表是为在DB中找到的每个联系人动态创建的,为了正确复制所选

各位,

我正在用Django编写一个Web应用程序。 我的问题实际上是在其中一个模板中,我创建了一个javascript函数来将信息从一个表单复制到另一个表单

我试图从p标签复制两个值,一个正常,另一个不正常

所以,这就是我所拥有的。 这是我的第一个表单,在其中我加载了一个带有联系人姓名和文档ID的表。 此外,在这个表中,每个寄存器的第一列是一个单选按钮,我将onchange事件设置为javascript函数“copyContact”

该表是为在DB中找到的每个联系人动态创建的,为了正确复制所选收音机的值,我还使用我拥有的联系人id信息动态地为每个单元格提供id

因此,基本上联系人id 15的名字信息将具有id=First_Name_15,依此类推

                        <div class="row flex-nowrap border-bottom mx-1">
                            <div class="col-1">
                                <p class=" my-2"><input class="form-check-input shadow-sm contactRadio" type="radio" name="contactRadio" id="contact{{ contact_contact_id }}" onchange="copyContact(this)" value="{{ contact.contact_id }}"></p>
                            </div>
                            <div class="col-3">
                                <p class="text-wrap my-2" id="first_name_{{ contact.contact_id }}">{{ contact.contact_first_name }}</p>
                            </div>
                            <div class="col-4">
                                <p class="text-wrap my-2" id="last_name_{{ contact.contact_id }}">{{ contact.contact_last_name }}</a></p>
                            </div>
                            <!-- div class="col-2">
                                <p class="text-wrap my-2">{{ contact.get_document_type_display }}</p>
                            </div-->
                            <div class="col-4">
                                <p class="text-wrap my-2" id="doc_no_{{ contact.contact_id }}">{{ contact.document_no }}</p>
                            </div>
                        </div>
每次用户选择联系人表单中的新单选按钮时,都会调用我的函数。 我的问题是getElementById似乎不适用于元素id\u文档\u no

当我选择收音机时,所选联系人的名字和姓氏被连接起来并正确发送到id\U customer\u name input,但由于我不知道的原因,id\U document\u no元素不会发生这种情况。 在函数的这一行中: var cust_doc=document.getElementByIdid_document_no;

通过更改函数并将联系人的文档信息发送到id_customer_name(仅用于调试目的)var cust_doc=document.getElementById_customer_name;,我可以看到,我的函数至少在获取文档值。

然后我假设问题出在getElementById上,但我不确定

有人知道这里会发生什么吗?我错丢了哪个身份证? 因为我很确定这是个愚蠢的错误


很抱歉发了这么长的帖子。

我仍然没有发现我的代码有问题,为什么不能正常工作。 无论如何,我找到了一个解决办法,那就是将字段的名称从“document\u no”重构为“document\u number”。这包括模板、django表单和模型,这也意味着更改数据库中的列名


我想我永远也不会知道真正的问题。¯_ツ_/“

ife看到此错误的大部分时间都是错误的范围。使用var而不是consor可能会导致这种情况。我建议不要使用基于html id的值,也不要将这些值存储在静态或全局对象中。使用html自定义数据标记,这就是它的用途:自定义数据。我会在复制元素的构建时安装监听器。有了它,你就可以确定每个项目都有它的监听器。实际上,我对HTML和任何与之相关的东西都是新手。我不知道变量的作用域,甚至不知道自定义数据属性。在快速搜索之后,我发现范围对于这个问题并不重要。无论如何,我确实用所有这些类型的变量执行了一些测试,但没有成功。至于自定义数据属性,这是一个很酷的概念,但是它没有解决我的问题,因为这将帮助我存储数据,而不是将其复制到其他元素。此外,我不确定自定义数据如何与Django框架配合使用,因为输入是自动创建的。我会试着查一下。
<!-- CUSTOMER FORM -->
                <h4>Informações do Cliente:</h4>
                <input type="text" hidden="true" name="selected_contact" id="selected_contact">
                <div class="row mb-1">
                    <label class="col-sm-3 col-form-label col-form-label-sm">Cliente:</label>
                    <div class="col-sm-9">
                        {{ customer_form.customer_name }}
                        <!-- input class="form-control form-control-sm shadow-sm" type="text" value="{{ customer.customer_name }}" -->
                    </div>
                </div>

                <div class="row mb-1">
                    <label class="col-sm-3 col-form-label col-form-label-sm">Tipo:</label>
                    <div class="col-sm-9">
                        {{ customer_form.customer_type }}
                        <!-- input class="form-control form-control-sm shadow-sm" type="text" required value="{{ customer.get_customer_type_display }}" -->
                    </div>
                </div>

                <div class="row mb-1">
                    <label class="col-sm-3 col-form-label col-form-label-sm">Documento:</label>
                    <div class="col-sm-9">
                        {{ customer_form.document_type }}
                        <!-- input class="form-control form-control-sm shadow-sm" type="text" value="{{ customer.get_document_type_display }}" -->
                    </div>
                </div>

                <div class="row mb-1">
                    <label class="col-sm-3 col-form-label col-form-label-sm">Número Doc:</label>
                    <div class="col-sm-9">
                        {{ customer_form.document_no }}
                        <!-- input class="form-control form-control-sm shadow-sm" type="text" value="{{ customer.document_no }}" -->
                    </div>
                </div>
                <!-- /CUSTOMER FORM -->
                {% if customer_form.errors %}

                    {% for field in customer_form %}
                        {% for error in field.errors %}
                            <div class="alert alert-danger p-1">
                                {{ field|add:': -'|add:error|escape }}
                            </div>
                        {% endfor %}
                    {% endfor %}

                    {% for error in customer_form.non_field_errors %}
                        <div class="alert alert-danger p-1">
                            {{ error|escape }}
                        </div>
                    {% endfor %}

                {% endif %}
                <!-- /CUSTOMER FORM -->
<script>
    function copyContact(radioItem) {
        var fname = document.getElementById("first_name_" + radioItem.value);
        var lname = document.getElementById("last_name_" + radioItem.value);
        var cname = fname.innerHTML + " " + lname.innerHTML;
        var doc = document.getElementById("doc_no_" + radioItem.value);

        var cust_name = document.getElementById("id_customer_name");
        var cust_doc = document.getElementById("id_document_no");

        cust_name.value = cname;
        cust_doc.value = doc.innerHTML;

        var contact = document.getElementById("selected_contact");
        contact.value = radioItem.value;
    }
</script>