2014-02-18 52 views
0

我有當我使用下拉式選單,工作只是罰款以下腳本,但是當我使用複選框不起作用:獲得選擇下拉列表的價值,而不是從複選框

function update_number_of_adds_found(field_dropdown, selected_value) { 
    selected_value = ""; 

    var addtypeid = $("#addtypeid").val(); // dropdown 
    var ch67 = $("#67").is(':checked'); // checkbox 
    //alert($("#67").val()); 
    alert("Hello"); 
    var selected_value = { 
     addtypeid: addtypeid, 
     isdamaged: isdamaged 
    }; 
    var url = "<?php echo site_url('search/findNumberOfAdds'); ?>"; 
    $.post(url, selected_value, function(r) { 
     if (r) { 

      $('#totalNumOfAdds').empty(); 
      $("#totalNumOfAdds").append(r.result); 
     } else { 
      // alert(selected_value); 
     } 
    }, 'json') 
} 

下面是HTML對於下拉:

<select name="addtypeid" id="addtypeid" class="styled_select" onchange="update_number_of_adds_found($('#addtypeid'), this.value);"> 

這裏是複選框代碼:

$msg = '"update_number_of_adds_found($('.$value['filterid'].'), this.value);"'; 
echo "<input type='checkbox' name='categoriesfilters[]' value='" .$value['filterid'] ."' class='zcheckbox' onclick='$msg'/>"; 

警報你好不是C alled當我點擊複選框,但它確實當我改變下拉。

問候,約翰

+0

可以ü的jsfiddle it.Both工作和不工作一個 –

+0

如果它不叫那麼無論是功能不調用,或者你有一個運行時錯誤。 [瞭解如何](http://www.creativebloq.com/javascript/javascript-debugging-beginners-3122820)[** debug ** JavaScript](https://developers.google.com/chrome-developer-tools /文檔/ JavaScript的調試)。 –

+0

複選框和下拉菜單都有不同的行爲。但是,您可以檢查onclick事件,而不是控制檯中的 –

回答

1

您將函數調用括在雙引號中。所以在你的onclick屬性中。它會看起來像這樣'onclick ='「update_number_of_adds_found($(someFilterId),this.value);」'

所以當你點擊你沒有運行函數調用,而是你只是運行一個「字符串」。

注意:當我的意思是運行一個「字符串」我的意思是它只是獲取存儲在內存中不執行字符串作爲JavaScript代碼。

這應該解決這一問題

$msg = 'update_number_of_adds_found($("'.$value['filterid'].'"), this.value);'; 
+0

現在就像一個魅力。謝謝。警報現在被調用。 – user2417624

+0

你知道爲什麼var ch67 = $(「#67」)。val();當警報返回時未定義? – user2417624

+0

你可以發佈id爲'67'的元素的html嗎? – anurupr

相關問題