传递变量值时,JQuery postJson添加“0”

时间:2016-01-21 18:45:10

标签: jquery json api breeze pass-by-reference

这是我关于stackoverflow的第一个问题:

我有一个小问题:当从html输入字段传递值到JQuery Json帖子时,我在输入的文本前面得到一个0。

谁能告诉我我做错了什么? 这是帖子:

  $( "#submit-project" ).click(function( event ) {
      alert( "submitting project" );
      var description_text = descr.value;
      var projectName = projectN.value;
      $.postJSON({
        url: 'https://api.breeze.pm/projects.json?api_token= ...',
        data: {
  

“name”:+''+ projectName +'',

     

“description”:+''+ description_text +'',

        "budget_amount": "0",
        "budget_hours": "0",
        "hourly_rate": "0",
        "currency_symbol": "€",
        "invitees": ["email"]
      },
      success: function(json) {
        alert(JSON.stringify(json));
      },
      error: function(err) {
        alert(err.responseText);
        // TODO stimmt das so?
      }
    });
    return false;
  });

这是输入来自的地方:

<input type="text" id="descr" name="project-description" >

...如果我手动输入值,我会先添加w 0 ...

结果:

    {"id":41785,"name":"0sddf","description":"0sdfff","budget_amount":"0.0",

2 个答案:

答案 0 :(得分:0)

您将+''+projectName+''作为数据中的值传递,请注意导致0的加号。加号对空字符串进行操作,将其转换为数字(0),然后连接到项目名称。从那里删除+''+,你就可以了。

答案 1 :(得分:0)

由于前导+已经定义了名称和描述变量,因此0显示在输入文本的前面,而是将它们更改为:

"name": ''+projectName+'', //TODO brackets
"description": ''+description_text+'', // TODO brackets

现在应该删除前导0。

https://jsfiddle.net/f10rby1e/