jquery Javascript选择更改不会触发

piv4azn7  于 2023-03-07  发布在  jQuery
关注(0)|答案(2)|浏览(102)

我试图检测当一个选择有其价值的变化(如用户选择下拉选项之一)。但我似乎不能得到的东西火。我已经尝试了许多解决方案,但我不能看到我错过了什么。
以下是我目前得到的结果:

<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项目中提取出来的。但是,我已经在这个表单中创建了一个独特的页面,以消除潜在的冲突等。

s8vozzvw

s8vozzvw1#

用途

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

如果没有它,你可以尝试用.test类给所有元素添加eventHandler,但是你的select还没有创建-html是从上到下解析的。$(function(){ });在整个页面加载时被触发-包括你的select。在函数中,你可以添加这个处理程序,因为所有HTML元素都已经加载了。

x7yiwoj4

x7yiwoj42#

在听取了KamilT和Omar的有益意见之后,我已经解决了不能将JavaScript放在表单之外的问题。
解决方案是在元素ID之前包含表单ID。例如:

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

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

相关问题