2013-04-01 54 views
1

我有一個複選框。我想根據複選框checkeduncheck的狀態調用兩個不同的php頁面。Jquery:在檢查或取消選中複選框時無法顯示加載相應的頁面

但下面的代碼只是調用檢查的PHP頁面。 可能是什麼原因?

 <script type="text/javascript"> 
    $(function() 
    { 
    $('input[id^="test"]').on('click',function() 
     { 
     if ($('input[id^="test"]').checked)//when users click to on checkbox to check 
     { 

      $.ajax({ 
       url: "updatestatus.php?id="+$(this).val()+"&status=1", 
       success: function(data){ 
       alert('Successfully updated...'); 
       } 
      }); 
    } 
    else//when users uncheck the checkbox 
     { $.ajax({ 
       url: "updatestatus.php?id="+$(this).val()+"&status=2", 
       success: function(data){ 
       alert("uncheckde..."); 
       } 
      }); 
     } 
     }); 
    }); 
     </script> 

和頁

<?php //checkbox in a while loop 

      echo " <input type='checkbox' id='test' value='".$row['id']."'/> "; 
     ?> 
+2

使用改變事件而不是點擊 – karaxuna

+2

另外,嘗試使用'$('input [id^=「test」]')。is(':checked')'作爲條件。 –

+0

@karaxuna我chnaged,但仍然存在問題。它只調用第二個Ajax函數。如果我選中或取消選中我的複選框 –

回答

1

按照要求:

嘗試使用$('input[id^="test"]').is(':checked')作爲條件。您也可以使用$(this)來引用觸發事件的特定複選框。所以,這裏是你的代碼清理了一下:

<script> 
    $(function() { 
     $('input[id^="test"]').on('click',function(e) { 
      if ($(this).is(':checked') { 
       $.ajax({ 
        url: "updatestatus.php?id="+$(this).val()+"&status=1", 
        success: function(data){ 
         alert('Successfully updated...'); 
        } 
       }); 
      } 
      else {  
       $.ajax({ 
        url: "updatestatus.php?id="+$(this).val()+"&status=2", 
        success: function(data){ 
         alert("uncheckde..."); 
        } 
       }); 
      } 
     }); 
    }); 
</script> 

另外一個變化我會做將是一個類分配給您的複選框和目標而不是使用選擇「開頭」(因爲不是每個瀏覽器支持它)。

+0

+1。繼續幫助我們.. –

0

嘗試這樣

$(function() 
    { 
    $('input[id^="test"]').on('click',function() 
     { 
     if ($(this).attr("checked") == "checked")//when users click to on checkbox to check 
     { 

      $.ajax({ 
       url: "updatestatus.php?id="+$(this).val()+"&status=1", 
       success: function(data){ 
       alert('Successfully updated...'); 
       } 
      }); 
    } 
    else//when users uncheck the checkbox 
     { $.ajax({ 
       url: "updatestatus.php?id="+$(this).val()+"&status=2", 
       success: function(data){ 
       alert("uncheckde..."); 
       } 
      }); 
     } 
     }); 
    }); 
+0

最好考慮鐵森的註釋 – karaxuna

1

這是你的支票檢查或不運行不正常。改用​​方法。

$(document).ready(function() { 
    $('input[name=cbx]').change(function() { 
     if ($(this).is(':checked')) { 
      alert('Checked'); 
     } else { 
      alert('Not Checked'); 
     } 
    }); 
}); 
相關問題