2011-09-05 123 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() 
     }); 
}