2011-09-05 86 views
-1

我正在使用JSON文件生成html。现在我需要将数据传递给servlet。但传递的数据显示为空。我使用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打印数据它说空...请解释张贴数据的正确方法。

回答

0

我改变了我的JSON data.Added 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 
     }); 

}

0

在我看来像你需要你的数据格式化成一个带参数的正确的URL -

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

取决于什么类型的脚本已接收数据,但就是这样我喜欢这样做。

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() 
     }); 
}