无法获得复选框和单选按钮的值

时间:2011-09-05 13:43:22

标签: javascript jquery

我正在使用JSON文件生成html。现在我需要将数据传递给servlet。但传递的数据显示为null。我正在使用jQuery post传递数据。

我的js文件有

   $.getJSON('input.json',function(data)
 {
$.each(data,function(j,feild)
        {
            if(this.type=="checkbox")
            {   

            $('body #tabs #tabs-3 #server').append(this.display_name).append(INPUT_CHECKBOX).attr({name:this.name,type:this.type}).append(NEWLINE);
            }       
            else
                if(this.type=="radio")
                {   
                    var radio = '';    
                    var len = feild.values.length; 
                    for (var i = 0; i< len; i++)
                    {        
                        radio +='<input type="radio" name="group2">'+feild.values[i];  
                    }
                    $('body #tabs #tabs-3 #server').append(this.display_name).append(radio).attr({name:this.name,type:this.type}).append(NEWLINE);
                }
        });

post方法包含

function forwarddata()
{
alert('inside the function');
$.post('url', 
      {gender:$('input[type=radio]').val(),
       items:$('input[type=checkbox]').val()!= undefined,
       stores:$('input[type=checkbox]').val()!= undefined
      });
}

Myjson文件有

{
"gender":
                   {"display_name":"gender:",
                    "name":"gender",
                    "format":"string",
                    "type":"radio",
                    "format":"string",
                    "values":["male","female"],
                    "isMandatory":"true"
                    },


"items":  
                   { "display_name":"items:",
                     "name":"items",
                     "format":"string",
                     "type":"checkbox",
                     "values":[1,2,3,4],
                     "isMandatory":"true"
                    },


"stores":                       
                   { "display_name":"stores:",
                     "name":"motion",
                     "format":"string",
                     "type":"checkbox",
                     "values":[a,b,c,d],
                     "isMandatory":"true"
                    }

}

当我尝试在servlet中打印数据时,它显示为null ...请解释发布数据的正确方法。

3 个答案:

答案 0 :(得分:0)

在我看来,您需要将数据格式化为带有参数的正确网址

http://whatever.com/my.php?gender=male&等。

取决于您接收数据的脚本类型,但这就是我喜欢的方式。

答案 1 :(得分:0)

$('input[type=checkbox]').val()!= undefined会给你真假,我希望你不是那么想的。试试这个

function forwarddata()
{
alert('inside the function');
$.post('url', 
      {gender:$('input[type=radio]').val(),
       items:$('input[type=checkbox]').val(),
       stores:$('input[type=checkbox]').val()
      });
}

答案 2 :(得分:0)

我更改了我的JSON数据。添加了name属性,下面的函数运行得很好 感谢:)

 function forwardserverdata()
{
alert('inside the function');
$.post(''url, 
      {gender:$('body #tabs #tabs-3 #server input:radio[name=gender]:checked').val(),
       items:$('body #tabs #tabs-3 #server  input:checkbox[name=items]:checked').val()!= undefined,
       stores:$('body #tabs #tabs-3 #server input:checkbox[name=stores]:checked').val()!= undefined
      });

}