在更改时获取Select输入的值

时间:2016-02-04 15:07:08

标签: javascript php jquery

我试图在Select输入中获取所选选项的值,但它不起作用。我应该在更改选项时显示警告框,但没有任何事情发生。这是我的代码。

<html>
<head>
<?PHP

$content ="";
$mammalArray = array();
$otherArray = array();
array_push($mammalArray,"dog");
array_push($mammalArray,"cat");
array_push($mammalArray,"pig");
array_push($otherArray,"bird");
array_push($otherArray,"fish");


$content .= "<select><option value='0'>Please Select a Pet Item</option>";
$content .= "<optgroup label='Mammals'>";

foreach($mammalArray as $animal=>$pet)
{
    $content .= "<option>" . $pet . "</option>";
}

$content .= "</optgroup><optgroup label='Other'>";

foreach($otherArray as $animal=>$pet)
{
   $content .= "<option>" . $pet . "</option>";
}
$content .= "</optgroup></select>";
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script type="text/javascript">
            $("select").change(function(){
            // Do something here.
            //alert("hello");
            var option = $(this).find('option:selected').val();
            alert(option);
            });
        </script>

</head>
<body>
<?php
echo($content);
?>


</body>
</html>

4 个答案:

答案 0 :(得分:3)

您的选项没有任何价值,您需要在脚本中包含以下内容:

elif (currentrow['A'] in blacklist.A) & (currentrow['B'] in blacklist.B):
    # Do something

答案 1 :(得分:0)

在DOM中设置HTML之前,您的javascript正在执行。要么将代码包装在$(document).on('ready')处理程序中,要么将其放在HTML后</body>之前:

$(document).on('ready', function(){
    $("select").change(function(){
        var option = $(this).find('option:selected').val();
        alert(option);
    });
});

答案 2 :(得分:0)

<script type="text/javascript">
    $(document).on("change", "select", function () {
        // Do something here.
        //alert("hello");
        var option = $(this).val();
        alert(option);
    });
</script>

答案 3 :(得分:0)

您的选项没有值,因此您需要更新foreach循环以包含一个。例如: -

foreach($mammalArray as $animal=>$pet)
{
    $content .= '<option value="' . $pet . '">' . $pet . '</option>';
}

然后更新你的jQuery,使其包含在$(function() {});中,以确保文档在运行之前就绪: -

$(function() {
   $("select").change(function(){
       var option = $(this).find('option:selected').val();
      alert(option);
   });
)};

如果不设置value代码的<option>属性,$(this).find('option:selected').val();就没有值。