这个功能我做错了什么?

时间:2012-07-03 19:41:50

标签: jquery

"fnServerParams": function (aoData) {
            var sReportType = (jQuery('#report_type').val() == "") ? "Downline" : jQuery('#report_type').val();
            var aRankID = (jQuery('#rank_id').val() == null) ? [] : jQuery('#rank_id').val();

            aoData.push({
                "name": "report_type",
                "value": sReportType,
                "name": "rankid",
                "value": aRankID.join(',')
            });
        },

aRankID应该是一个空数组,或者用多选框中的值填充。

当我第一次加载页面时,这就是firebug返回的内容。

>>> jQuery('#rank_id').val();
null

在我做了一些选择后,它就会返回。

>>> jQuery('#rank_id').val();
["1", "2", "3"]

我必须遗漏一些东西,因为它导致我的ajax页面崩溃。我需要使用.join,因为我的ajax页面需要一个字符串。

感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

应该

var aRankID = (jQuery('#rank_id').val() == null) ? [] : jQuery('#report_type').val();

不是

var aRankID = (jQuery('#rank_id').val() == null) ? [] : jQuery('#rank_id').val();

您使用jQuery('#report_type').val()代替jQuery('#rank_id').val()

答案 1 :(得分:1)

这看起来很可疑:

var aRankID = (jQuery('#rank_id').val() == null) ? [] : jQuery('#report_type').val();

您的意思是检查#rank_id但是使用#report_type中的值吗?

答案 2 :(得分:1)

试试这个:

 "fnServerParams": function (aoData) {
        aoData.push({
            "name": "report_type",
            "value": jQuery('#report_type').val() || "Downline",
            "name": "rankid",
            "value": (jQuery('#rank_id').val() || []).join(",")
        });
  }