jquery - 调用下拉列表的 OnChange 时事件未触发

标签 jquery html drop-down-menu

在我的下拉列表中,我将其设置为 onchange 应该调用 checkval 并传入元素的 id。我刚开始使用非常基本的登录,但甚至无法显示警报。我做错了什么?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script>
function checkval(id){
    if($('#' + id).val == "Other")
    {
        alert("You Selected Other");
        //other logic will go here
    }
}
</script>
</head>

<body>
<select name="items1[]" id="items1[]" onchange="checkval(id);">
    <option selected value="">Select One</option>
    <option value="one">One</option>
    <option value="Other">Other</option>
  </select>

<select name="items2[]" id="items2[]" onchange="checkval(id);">
    <option selected value="">Select One</option>
    <option value="one">One</option>
    <option value="Other">Other</option>
  </select>
</body>
</html>

最佳答案

编辑: 似乎它对 id items1[] 失败了。所以更改了标记位。修复了 jsFiddle这里。

请参阅 What characters are allowed in DOM IDs? 的链接

将您的标记更改为 onchange="checkval(this.id);"

脚本为

function checkval(id){
    if($('#' + id).val() == "Other")
    {
        alert("You Selected Other");
        //other logic will go here
    }
}

关于jquery - 调用下拉列表的 OnChange 时事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9039802/

相关文章:

onmouseover() 的 JavaScript 转换没有在 onmouseout() 事件中转换回我想要的方式

javascript - 获取下拉列表的值而不仅仅是 ID

jquery - FullCalendar - dayRender 在 'removeEvents' 调用后似乎无法工作

javascript - 自动调整所有屏幕的弹出框

html - 向表格添加边栏和页脚

c# - DropDownList如何设置DataSource

javascript - 如何更改 Bootstrap 验证器图标位置

javascript - 使用 Jquery 添加行 - 需要增加输入名称和 onkeyup 事件调用者

javascript - 第三个下拉菜单受第一个和第二个下拉菜单的影响

javascript - 动态显示下拉框中的值,然后显示用户选择的已存储在数据库中的值