2016-09-12 1 views
-3

Я использую AJAX для получения одной из таблиц моей базы данных. Я пытаюсь улучшить его, создав функцию таблицы обновлений после нажатия кнопки.Javascript onclick срабатывает, не нажимая его в цикле

success: function(result) { 
    for(var i = 0; i < result.length; i++) { 
     document.getElementById('tableT').innerHTML += 
      "<tr>" + 
       "<td>"+result[i]['id']+"</td>" + 
       "<td>"+result[i]['terminalId']+"</td>" + 
       "<td>"+result[i]['departmentId']+"</td>" + 
       "<td>"+result[i]['profileId']+"</td>" + 
       "<td>"+result[i]['created']+"</td>" + 
       "<td>"+result[i]['modified']+"</td>"+ 
       "<td>"+"<div style='margin-bottom:10px; text-align: center;'>"+ 
       "<a class='btn btn-info edit-btn' data-toggle='modal' onclick='"+updApplication(result[i]['id'])+"' data-target='#myModal-44' title='Edit'><i class='fa fa-edit'></i></a>"+ 
        "</div>"+"</td>"+ 
      "</tr>"; 

    } 
}, 

Почему я получаю предупреждения со всеми моими идентификаторами, даже не нажимая кнопку?

function updApplication(id){ 
    alert(id); 
}; 
+3

вы вызываете функцию каждый раз, она должна быть строкой, а не вызовом функции, если вы не хотите, чтобы она вызывала его ... 'onclick = 'updApplication (result [" + i + "] [' id '])' ' – depperm

+0

При написании предупреждений было бы полезно узнать текст предупреждающих сообщений. Но я уверен, что * depperm * указывает в правильном направлении. – gus27

ответ

2

У вас есть проблема в кавычках, теперь вы вызываете updApplication() функции в каждой итерации цикла, ваш код должен быть как:

..data-toggle='modal' onclick='updApplication("+result[i]['id']+")' data-target='#myModa.. 

Надеется, что это помогает.

2

Вы получаете предупреждения, потому что на самом деле вы вызываете функцию при создании разметки.

Попробуйте определить onclick с помощью функции в качестве строки.

"onclick=\"updApplication(" + result[i]['id'] + ")\"..." 
+0

При использовании 'onclick' не будет доступа к локальной переменной' result'. И 'id' должен быть в кавычках или просто использовать' .id'. –

+0

Хороший звонок, отредактирован. – IrkenInvader

+0

Да, выглядит лучше, имея в виду, что если 'id' является строкой, ее нужно будет обернуть в кавычки в позиции аргумента. Если это число, то проблем нет. –