在链接上单击我调用一个进行Ajax调用的方法。问题是,当我在第一个参数中使用UUID字符串时,它会抛出一个错误:
未捕获的TypeError:非法调用`
以下是该链接的示例:
onclick="fetchQuestion(ff8080814e6c440b014e6c464f660001,2);return false"
但是当我在第一个参数中使用简单ID时,它可以正常工作。示例:
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无效?
答案 0 :(得分: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'));
});
});
答案 1 :(得分:2)
由于UUID为string
,您需要将UUID包装在引号中。
onclick="fetchQuestion('ff8080814e6c440b014e6c464f660001', 2);return false"
// ^ ^