2017-08-30 26 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>