【发布时间】:2021-10-15 03:57:36
【问题描述】:
我有两个单选按钮。根据选中哪个,我想在页面上显示或隐藏<div>。所以我创建了这个处理程序。
$(function () {
$('input[name="Search.LatestOnly"]').on('change', function () {
if ($(this).val() == 'true')
$('#date-section').hide(400);
else
$('#date-section').show(400);
});
});
这很好用。但是我想在页面加载时将<div> 可见性设置为正确的状态,所以我添加了这一行:
$('input[name="Search.LatestOnly"]:checked').trigger();
这会产生对我没有意义的运行时错误。
jQuery.Deferred 异常:无法将未定义或空值转换为对象类型错误:无法将未定义或空值转换为对象 在 hasOwnProperty () 在 Object.trigger (https://localhost:44377/lib/jquery/dist/jquery.min.js:2:70619) 在 HTMLInputElement。 (https://localhost:44377/lib/jquery/dist/jquery.min.js:2:72108) 在 Function.each (https://localhost:44377/lib/jquery/dist/jquery.min.js:2:2976) 在 S.fn.init.each (https://localhost:44377/lib/jquery/dist/jquery.min.js:2:1454) 在 S.fn.init.trigger (https://localhost:44377/lib/jquery/dist/jquery.min.js:2:72084) 在 HTML 文档。 (https://localhost:44377/Data/Search:206:58) 在 e (https://localhost:44377/lib/jquery/dist/jquery.min.js:2:30005) 在 t (https://localhost:44377/lib/jquery/dist/jquery.min.js:2:30307) 未定义 S.Deferred.exceptionHook@jquery.min.js:2 t@jquery.min.js:2 设置超时(异步) (匿名)@ jquery.min.js:2 c@jquery.min.js:2 fireWith@jquery.min.js:2 开火@jquery.min.js:2 c@jquery.min.js:2 fireWith@jquery.min.js:2 准备好@jquery.min.js:2 B@jquery.min.js:2 jquery.min.js:2
未捕获的类型错误:无法将未定义或 null 转换为对象 在 hasOwnProperty () 在 Object.trigger (jquery.min.js:2) 在 HTMLInputElement。 (jquery.min.js:2) 在 Function.each (jquery.min.js:2) 在 S.fn.init.each (jquery.min.js:2) 在 S.fn.init.trigger (jquery.min.js:2) 在 HTML 文档。 (搜索:206) 在 e (jquery.min.js:2) 在 t (jquery.min.js:2)
谁能告诉我如何初始化我的 HTML,以便在页面加载后隐藏或显示 <div>?
【问题讨论】:
-
也许
$('input[name="Search.LatestOnly"]:checked').trigger();执行得太快了?你能编辑html和css,还是只编辑js? -
@asyncawait:我可以编辑 HTML。但是我把这段代码放在
$(function() { ... });中,所以应该可以使用了。 -
你能在触发元素之前记录它吗?那可以排除。我建议使用
checkedhtml 属性作为初始状态,或者使用 css 使元素可见,稍后由 js 更改,或者由 js 立即更改为.show -
@asyncawait:我不知道你所说的记录元素是什么意思。我可以用 CSS 隐藏它,但是如果它应该显示它就会处于错误的状态。
-
当我说“记录元素”时,我的意思是,
console.log($('input[name="Search.LatestOnly"]:checked'))在您的代码中出现错误之前可以在控制台中查看结果。
标签: javascript html jquery