【发布时间】:2017-11-24 08:38:42
【问题描述】:
所以,我有这个问题一直困扰着我,我似乎无法解决它。出现的错误是这样的:
未捕获的错误:语法错误,无法识别的表达式:[{"type":"header","subtype":"h1","label":"Another test form"},{"type":"checkbox-group ","label":"复选框组","name":"checkbox-group-1497353080484","values":[{"label":"Option 1","value":"option-1","selected ":true}]},{"type":"header","subtype":"h1","label":"Header"},{"type":"number","label":"Number", "className":"form-control","name":"number-1497353081884"},{"type":"text","label":"Text Field","className":"form-control"," name":"text-1497353083345","subtype":"text"}]
我已设法找到导致此问题的代码行,即:
forms = $(document.getElementById('formData').getAttribute("value")),
现在,我不知道为什么会导致这个问题。进来的内容是正确的。这一切都是在一个 JQuery 函数中完成的,实际上整个 JQuery 函数看起来是这样的:
jQuery(function($) {
var $fbEditor = $(document.getElementById('fb-editor')),
$formContainer = $(document.getElementById('fb-rendered-form')),
forms = $(document.getElementById('formData').getAttribute("value")),
fbOptions = {
formData: forms,
dataType: 'json',
onSave: function(){
$fbEditor.toggle();
$formContainer.toggle();
$('form', $formContainer).formRender({
formData: formBuilder.formData
});
}
},
formBuilder = $fbEditor.formBuilder(fbOptions);
$('.edit-form', $formContainer).click(function() {
$fbEditor.toggle();
$formContainer.toggle();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
所以,我对 JavaScript、JQuery 或其他任何方面都没有那么丰富的经验。所以这很可能是一个简单的问题,但我目前无法弄清楚它是什么。其他人可以告诉我哪里出了问题以及如何解决吗?
【问题讨论】:
-
当你在你的控制台中
document.getElementById('formData')和document.getElementById('formData').getAttribute("value")时返回什么? -
从错误看来,问题是因为您试图从 JSON 字符串创建 jQuery 对象。我什至不确定你想用这种逻辑实现什么。
-
getAttribute返回一个字符串。 jQuery 尝试将其解析为选择器或 HTML 字符串,但失败了。您为什么要尝试将其包装在 jQuery 中? -
感谢大家的cmets。现在已经回答了这个问题,是 $() 导致了这个问题。因此,将其解析为 Jquery 是个问题,谢谢大家。
标签: javascript jquery syntax-error