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