2014-02-18 50 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

相关问题