JQuery postJson 在传递变量值时添加一个“0”

JQuery postJson adds a "0" when passing a variables value

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

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

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

  $( "#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" >

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

结果:

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

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

输入文本前面的 0 是因为您用 定义了名称和描述变量的前导 +,请将它们更改为:

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

现在应该删除前导 0。

https://jsfiddle.net/f10rby1e/