2016-02-04 183 views
0

我正在嘗試在選擇輸入中獲取所選選項的值,但它不起作用。當我改變選項時它應該顯示一個警告框,但沒有任何事情發生。這是我的代碼。獲取選擇輸入更改的值

<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

首先,值」;? –

回答

0

您的選擇有沒有價值,所以你需要更新你的foreach循環包括一個。例如: - :沒有設置你<option>標籤的value屬性有

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

-

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

然後使其包裹在$(function() {});,以確保該文件已準備好運行之前更新您的jQuery將是沒有價值的$(this).find('option:selected').val();

3

您的期權沒有價值,你需要環繞你的腳本如下:之前你的HTML DOM中的設置被執行

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

您的JavaScript。無論是包裝你的代碼在$(document).on('ready')處理或只是你</body>之前把它,你的HTML後:

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