检测两个选择字段的变化- Jquery


Detect .change for two selection fields - Jquery

我不是jquery专家,所以我需要一些帮助在这里现有的代码。

我希望我的jquery ajax函数工作时,#drop2 #drop2_1已经改变。现在,这个函数只在#drop2 #drop2_1被改变时起作用。(

Jquery:

$('#wait_2').hide();
$('#drop_2 && #drop_2-1').change(function(){
  $('#wait_2').show();
  $('#result_2').hide();
  $.get('"func.php'", {
    func: '"drop_2'",
    drop_var: $('#drop_2').val()
  }, function(response){
    $('#result_2').fadeOut();
    setTimeout('"finishAjax_tier_three('result_2', ''"+escape(response)+'"')'", 400);
  });
    return false;
});
PHP代码:

if($_GET['func'] == "drop_1" && isset($_GET['func'])) {
   drop_1($_GET['drop_var']);
}
function drop_1($drop_var)
{
    include_once('db.php');
    $result = mysql_query("SELECT DISTINCT tier_two FROM Producten_verkoop WHERE tier_one='$drop_var'");
    $result2 = mysql_query("SELECT DISTINCT tier_three FROM Producten_verkoop WHERE tier_one='$drop_var'")
    or die(mysql_error());
    echo '<select name="drop_2" id="drop_2">
          <option value=" " disabled="disabled" selected="selected">Choose one</option>';
           while($drop_2 = mysql_fetch_array( $result ))
            {
              echo '<option value="'.$drop_2['tier_two'].'">'.$drop_2['tier_two'].'</option>';
            }
    echo '</select>';

            echo '<select name="drop_2-1" id="drop_2-1">
          <option value=" " disabled="disabled" selected="selected">Choose one</option>';
           while($drop_2 = mysql_fetch_array( $result2 ))
            {
              echo '<option value="'.$drop_2['tier_three'].'">'.$drop_2['tier_three'].'</option>';
            }
    echo '</select>';

也欢迎其他解决方案,如检测非空值

您提供的选择器不起作用。您必须编写自定义逻辑来实现您的逻辑。试试这个

function getFunc(){
  //Reset the dropdownChanged values
  dropDown2_1Changed = false;
  dropDown2Changed = false;
  $('#wait_2').show();
  $('#result_2').hide();
  $.get("func.php", {
      func: "drop_2",
      drop_var: $('#drop_2').val()
    }, 
    function(response){
      $('#result_2').fadeOut();
      setTimeout(function(){
        finishAjax_tier_three('result_2', escape(response));
      }, 400);
  });
}
var dropDown2Changed = false; dropDown2_1Changed = false;
$('#drop_2').change(function(){
   dropDown2Changed = true;
   if(dropDown2_1Changed){
      getFunc();
   }
});
$('#drop_2-1').change(function(){
   dropDown2_1Changed = true;
   if(dropDown2Changed){
      getFunc();
   }
});