21151


いつもお世話になっております。  
下記は入力フォームで入力された項目をボタン押下でJSONデータの方に変換後リクエストをおくる  
JSファイルです。  
ボタン押下した際に項目が未入力の場合はリクエストパラメーターから削除することはできないでしょうか？

[code]

     $(function(){
            $("#response").html("Response Values");
            $("#buttonpost").click( function(){
                
                var dept_ids = $("#dept_ids").val().split(",");
                var start_date = $("#start_date").val();
            var end_date = $("#end_date").val();
    
                var JSONdata = {};
                JSONdata.dept_ids = dept_ids;
                JSONdata.start_date = start_date; 
                JSONdata.end_date = end_date;
                
                
       
         $.ajax({
      url : 'http://52.192.178.185:8280/api/dept_accesses',
      type : "POST",
            data : JSON.stringify(JSONdata),
         contentType: "application/json;charset=UTF-8",
         dataType : "json",
         accepts : {json: "application/vnd.glv.v1+json;charset=UTF-8"},
       }).done(function(data, status, xhr) {
          $("#response").html(JSON.stringify(data));
       }).fail(function(xhr, status, error) {
          // 通信失敗時の処理
          alert("失敗");
       }).always(function(arg1, status, arg2) {
          
        });
     
           })
           })
[/code]


CC BY-SA 3.0
2016-01-21T08:42:35.507
21149
2016-01-21T09:27:35.740
13072
question
javascript html json ajax
項目が空白時の場合パラメーターから削除したい


`delete JSONdata.dept_ids`
といった形でプロパティは削除できるので、各項目について「空白なら削除する」ということを順番に行えばいいかと思います。

[code]

    if ( /* JSONdata.dept_idsが空白か？ */ )
      delete JSONdata.dept_ids;
    ...
    
[/code]

[`for..in`](http://www.ajaxtower.jp/js/for/index8.html)
と組み合わせるとループで一括処理できそうですが、そこは割愛します。

あるいは、有効な値が入力されていた時だけ `JSONdata` にセットするというのも手ですね。

[code]

    if ( /* #dept_idsが空白以外か？ */ )
      JSONdata.dept_ids = /* #dept_idsの値 */;
    ...
    
[/code]


CC BY-SA 3.0
2016-01-21T09:27:35.740
21151
2016-01-21T09:27:35.740
8000
21149
answer