如何捕获Javascript TypeError?

时间:2017-08-06 12:02:04

标签: javascript jquery ajax spring spring-mvc

<div class="member_management_area" style="display:none">
    <div class="member_search">
        <a class="member_search_zone">
            <span class="glyphicon glyphicon-menu-hamburger searchMenuyo" aria-hidden="true"></span>
            <span name="searchMenu" id="searchMenu">검색 유형을 선택하세요</span>
        </a>
        <input type="text" name="keyword">
            <a class="memberSearch_bt">
                <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
            </a>
            <select id="choiceSearchMenu" name="type" onchange="menuDisplay(this.form)">
                <option value="0"> ---- 선택하세요 ---- </option>
                <option value="1">아이디로 검색</option>
                <option value="2">끝 번호로 검색</option>     
            </select>
    </div>
</div>

$('.searchMenuyo').click(function()
{
    $('#choiceSearchMenu').slideDown(); 
});

$('#choiceSearchMenu').mouseout(function()
{
    $('#choiceSearchMenu').slideUp();
});

function menuDisplay(frm)
{
    var menu = frm.type.selectedIndex;
    console.log(menu);

    if(menu == 1)
    {
        document.getElementById('searchMenu').innerHTML('Search ID');
    }

    if(menu == 2)
    {
        document.getElementById('searchMenu').innerHTML('Search Last PhoneNumber');
    }
}

enter image description here

如果从slideDown菜单中选择select选项的值, 必须更改该值,但继续到var menu = frm.type.selectedIndex; 在这部分中,Uncaught TypeError:无法读取属性&#39; type&#39; null。

为什么会发生此错误以及如何解决?

如果你能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

错误&#34;未捕获的TypeError:无法读取属性&#39;键入&#39; of null&#34;表示frm变量未定义。意思是,在onchange事件期间调用函数时,它没有得到它的值。

var menu = frm.type.selectedIndex;

此外,关于您对innerHTML的查询,您可以设置其值如下:

document.getElementById('searchMenu').innerHTML = 'Search ID';