我试图在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>
答案 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();
就没有值。