Javascript 我的JS函数不断地得到";未捕获的引用错误:。。。“未定义”;甚至当包装到(文档)中时。准备好了吗

Javascript 我的JS函数不断地得到";未捕获的引用错误:。。。“未定义”;甚至当包装到(文档)中时。准备好了吗,javascript,jquery,Javascript,Jquery,我试图在HTML表单中的选择输入类型上显示所选选项 这是我的输入类型: 我一直在 未捕获引用错误:未定义opcionesMensaje 每次我尝试选择一个选项时 JS位于一个在页脚调用的文件中。我可以在查看页面源代码时看到该文件。jQuery文件在我之前被调用。opcionesMensaje的作用域不正确。它在传入$(document.ready的匿名函数中起作用。除非将其附加到窗口全局对象,否则在该级别上不应访问它。尝试类似于window.opcionesMensaje=function(){

我试图在HTML表单中的选择输入类型上显示所选选项

这是我的输入类型: 我一直在

未捕获引用错误:未定义opcionesMensaje

每次我尝试选择一个选项时


JS位于一个在页脚调用的文件中。我可以在查看页面源代码时看到该文件。jQuery文件在我之前被调用。

opcionesMensaje
的作用域不正确。它在传入
$(document.ready
的匿名函数中起作用。除非将其附加到
窗口
全局对象,否则在该级别上不应访问它。尝试类似于
window.opcionesMensaje=function(){…}

的方法。不管怎样,在Javascript而不是HTML中附加事件处理程序通常是个好主意<例如,code>$('select').change(function(){…})您实际上并没有在
$(document).ready(function(){…})中执行任何操作
而不是定义
optionesaje
函数。因此,没有理由只在文档准备就绪时才执行的某个对象中调用它。鉴于此,在提供的代码中,没有明显的理由在
$(文档)中定义
optionesaje
函数。ready(函数(){…}
,更好的解决方案是只在全局范围内定义函数。更好的解决方案是从JavaScript而不是HTML(
)中添加
opcionesMensaje
作为事件侦听器。
            <div id="selectorTemaMensaje" class="form-group"><label>&nbsp; Motivo del mensaje: </label>
                <select onchange="return opcionesMensaje();" required class="form-control" name="tema">
                    <option> </option>
                    <option data-tema="material" >Tengo problemas para acceder al material del curso</option>
                    <option data-tema="notaExamen" >Tengo problemas con la nota recibida en un examen</option>
                    <option data-tema="envioPago" >Quiero avisar de un pago que hice o saber si estoy debiendo alguna cuota</option>
                    <option data-tema="envioDoc" >Tengo problemas relacionados con el envío de la documentación solicitada</option>
                    <option data-tema="certificado" >Quiero saber cómo obtener mi certificado</option>
                    <option data-tema="docente" >Quiero preguntar a un docente por una duda con el material de una bolilla</option>
                    <option data-tema="otro" >Otro</option>
                </select>
            </div>
<span id="mostrar"></span>
$(document).ready(function(){
    function opcionesMensaje() {
        var sel = document.getElementById('select');
        var mostrar = document.getElementById('mostrar');
        sel.onchange = function(){
            var selected = sel.options[sel.selectedIndex];
            mostrar.innerHTML = selected.getAttribute('data-tema');
        };
        sel.onchange();
    }
}