0

我试图检测 Select 何时具有其值 changerd(例如,用户选择下拉选项之一)。但是我似乎无法让事情发生。我尝试了许多解决方案,但我显然有一个缺失的日子,但我看不到树木的树林。

这是我目前得到的:

<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。

Ps 之所以有对JqueryMobile的引用,纯粹是因为上面摘自一个JQM项目。但是,我已将上述内容创建为此表单中的唯一页面,以消除潜在的冲突等。

任何想法/建议将不胜感激。谢谢。

4

2 回答 2

2

利用

$(function(){
    $(".test").change(function() {
      //var newVal = $(this).val();
      alert("The new value is: " + $(this).val());
    });
)};

没有它,您尝试将 eventHandler 添加到具有类的所有元素,但尚未创建.test您的选择- html 是从上到下解析的。当整个页面加载时触发 - 包括您的选择。在函数中,您可以添加处理程序,因为所有 HTML 元素都已加载。$(function(){ });

于 2013-08-29T15:28:25.120 回答
0

在听取了 KamilT 和 Omar 的有用意见后,我解决了无法将 JavaScript 放在表单之外的问题。

解决方案是/是在元素 id 之前包含表单 id。例如:

    <script type="text/javascript">
        $("#formenstep1 #select-choice-enmeasurement").change(function() {
            //alert("The new value is: " + $(this).val());
        });
    </script>

这现在可以位于页面 html 的页脚,它将获取所需的表单元素。

于 2013-08-30T09:22:14.650 回答