我试图检测当一个选择有其价值的变化(如用户选择下拉选项之一)。但我似乎不能得到的东西火。我已经尝试了许多解决方案,但我不能看到我错过了什么。
以下是我目前得到的结果:
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<!-- jQueryMobileCSS - original without styling -->
<link rel="stylesheet" href="nativeDroid_v0.2.2/development/css/jquerymobile.css" />
<!-- jQuery / jQueryMobile Scripts -->
<script src="JQueryMobile/jquery-1.10.2.js"></script>
<script src="JQueryMobile/jquery.mobile-1.3.2.js"></script>
<!-- customised styles -->
<link rel="stylesheet" type="text/css" href="css/index.css" />
<script type="text/javascript">
$(".test").change(function() {
//var newVal = $(this).val();
alert("The new value is: " + $(this).val());
});
</script>
</head>
<body>
<select name="select-choice-enmeasurement" id="select-choice-enmeasurement" class="test">
<option value="C45">C45</option>
<option value="M3">M3</option>
<option value="M5">M5</option>
<option value="M8">M8</option>
</select>
</body>
</html>
我也尝试过上面的方法,但是检测的是选择控件的类而不是ID。
另外,这里有一个对JqueryMobile的引用,纯粹是因为上面的内容是从一个JQM项目中提取出来的。但是,我已经在这个表单中创建了一个独特的页面,以消除潜在的冲突等。
2条答案
按热度按时间s8vozzvw1#
用途
如果没有它,你可以尝试用
.test
类给所有元素添加eventHandler,但是你的select还没有创建-html是从上到下解析的。$(function(){ });
在整个页面加载时被触发-包括你的select。在函数中,你可以添加这个处理程序,因为所有HTML元素都已经加载了。x7yiwoj42#
在听取了KamilT和Omar的有益意见之后,我已经解决了不能将JavaScript放在表单之外的问题。
解决方案是在元素ID之前包含表单ID。例如:
它现在可以位于页面html的页脚,并将拾取所需的表单元素。