2017-08-30 27 views
0

逃避我有一个方法,定义如下:无法理解字符串从的onclick方法

function updateManagerPreferences(companyId, managerId, userId) { 
    console.log('inside method'); 
    $.ajax({ 
    type: 'GET', 
    url: admin_url + "/updatemanager/" + companyId + "/" 
    + managerId + "/" + userId, 
    encode: false, 
    crossDomain: true 
    }).done(function (tresult) { 
    var success_result = jQuery.parseJSON(JSON.stringify(tresult)); 
    console.log(success_result); 
    }); 
} 

它需要3个参数从按钮的onclick,我试图调用方法如下:

<input type='button' class='btn btn-sm btn-success' value='Update' onclick='updateManagerPreferences(" + companyId + "," + $('#managerDropDown').val() + "," + result.ResponseMessage.users[i].user_id + ");'/> 

我引用所有类似的stackoverflow答案,但他们都没有帮助。

有人可以告诉我哪里错了吗?

+2

看起来您在$ .ajax调用的url中缺少managerId前的+。 – CF256

+0

HTML是从JS或其他语言生成的?字符串分隔符没有多大意义。如果使用不显眼的事件处理程序,则还可以避免整个字符串连接混乱。 –

+0

如何使用隐藏字段来存储该值? –

回答

0

您可以通过jQuery直接从函数和元素值中获取值来解决。

<input type='button' class='btn btn-sm btn-success' value='Update' id='updatemanager' /> 

<script> 
$("#updatemanager").on("click",function(){ 
    var managerId = $('#managerDropDown').val(); 
    var userId = result.ResponseMessage.users[i].user_id; 
    $.ajax({ 
    type: 'GET', 
    url: admin_url + "/updatemanager/" + companyId + "/" 
    + managerId + "/" + userId, 
    encode: false, 
    crossDomain: true 
    }).done(function (tresult) { 
    var success_result = jQuery.parseJSON(JSON.stringify(tresult)); 
    console.log(success_result); 
    }); 
}); 
</script>