2015-07-08 4 views
0

При нажатии ссылки я вызываю метод, который вызывает вызов Ajax. Проблема заключается в том, что когда я использую UUID строки в первом параметре выдает ошибку:Ошибка при вызове Ajax при использовании UUID

Uncaught TypeError: Illegal invocation`

Вот пример ссылки:

onclick="fetchQuestion(ff8080814e6c440b014e6c464f660001,2);return false" 

Но когда я использую простой идентификатор в первом параметре работает отлично. Пример:

onclick="fetchQuestion(3,2);return false" 

Вот реализация метода fetchQuestion:

function fetchQuestion(questionId, index){ 
    $.ajax({ 
     url: '${createLink(action: 'fetchQuestion')}', 
     data: { 
      testAttemptedId: ${testAttemptedId}, 
      index: index, 
      id: questionId, 
      grantAssessmentId: ${grantAssessmentId} 
     }, 
     cache: false, 
     success: function(html) { 
      $('div[id="questionContent"]').html(html); 
     } 
    }); 
} 

Почему это не работает в случае UUID?

ответ

2

Как UUID является string, вам нужно обернуть UUID в кавычки.

onclick="fetchQuestion('ff8080814e6c440b014e6c464f660001', 2);return false" 
//     ^       ^
2

Вам нужно поместить значение в кавычки для его распознавания в виде строки.

onclick="fetchQuestion('ff8080814e6c440b014e6c464f660001',2);return false" 

Обратите внимание, что вы должны использовать Javascript, чтобы прикрепить свои события, поскольку это позволяет лучше разобраться в проблемах. Попробуйте это:

<a href="#" data-uuid="ff8080814e6c440b014e6c464f660001" daat-index="2">Foo</a> 

Затем вы можете подключить к этому в JS:

$(function() { 
    $('a').click(function(e) { 
     e.preventDefault(); 
     fetchQuestion($(this).data('uuid'), $(this).data('index')); 
    }); 
}); 
Смежные вопросы