Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不计算值的情况下将日期传递到函数jQuery中?_Jquery - Fatal编程技术网

如何在不计算值的情况下将日期传递到函数jQuery中?

如何在不计算值的情况下将日期传递到函数jQuery中?,jquery,Jquery,我想将v.planned\u start\u date确切日期作为07-02-2020传递给函数,现在发生的是日期为负数,直到得到-2015,如下所示07减号02减号2020=-2015。如何防止这种情况发生 var project = ''; $.ajax({ url : url_api, success: function(response){ $.each(response.data, function(k, v){ console.

我想将
v.planned\u start\u date
确切日期作为
07-02-2020
传递给函数,现在发生的是日期为负数,直到得到
-2015
,如下所示<代码>07减号
02
减号
2020
=
-2015
。如何防止这种情况发生

var project = '';
$.ajax({
    url : url_api,
    success: function(response){
        $.each(response.data, function(k, v){
            console.log(v.planned_start_date); // the value is 07-02-2020
            project +=  "<div>"+
                            "<input id='chgReqNPSL1"+v.l1_id+"' onchange='chgReqNPSL1(this.id, "+v.planned_start_date+")'>"+
                        "</div>";
            $("#result").append(project);
        });
    }
}); // end of ajax


function chgReqNPSL1(id, planned_start_date){
    console.log(id); // I got the actual ID no issue here
    console.log(planned_start_date); // The problem is here whereby I got -2015 as result not 07-02-2020. Why?
}
var项目=”;
$.ajax({
url:url_api,
成功:功能(响应){
$。每个(响应、数据、函数(k、v){
console.log(v.planned_start_date);//值为07-02-2020
项目+=“”+
""+
"";
$(“#结果”)。追加(项目);
});
}
}); // ajax的终结
功能chgReqNPSL1(id,计划开始日期){
console.log(id);//我得到了实际的id,这里没有问题
console.log(计划开始日期);//问题是我得到了-2015而不是07-02-2020。为什么?
}

这里有两个问题

  • 如果没有引号,则将数学表达式传递到函数中,因此
    07-02-2020=-2015
  • 在循环的每个迭代中,您连接
    项目
    ,并将其附加到
    #结果
    。您可能不希望这样,因为这样会导致大量重复的元素
  • 我建议您将
    response.data
    映射到一个jQuery元素数组,然后将其附加到
    #result
    。创建元素时,可以使用更安全的方法来设置数据和属性

    success:({data})=>{
    $(“#结果”).append(data.map(v=>$).append($(“”),append{
    id:`chgReqNPSL1${v.l1_id}`,
    “数据日期”:v.planned\u start\u date//使用数据属性存储日期
    }))))
    }
    
    您可以在委托事件处理程序中完全单独处理更改事件

    $(“#结果”)。在(“更改”,“输入[数据日期]”,函数(e){
    console.log(this.id)
    console.log(this.dataset.date)
    })
    
    演示

    //示例响应数据
    const data=[{l1\u id:1,计划开始日期:“07-02-2020”},{l1\u id:2,计划开始日期:“01-03-2020”}]
    const$result=$(“#result”)。在(“更改”,“输入[数据日期]”,函数(e){
    console.log(“id:,this.id”)
    log(“日期:”,this.dataset.date)
    log(“值:”,this.value)
    })
    //后来。。。
    $result.append(data.map)(v=>$(“”)。append($(“”){
    id:`chgReqNPSL1${v.l1_id}`,
    “数据日期”:v.planned\u start\u date//使用数据属性存储日期
    }))))
    
    
    没有引号,它看起来像一个数字表达式,而不是html中的字符串。可能只能回答下面的部分。
    \“”+v.planned\u start\u date+“\”