未捕获的语法错误。在<input id={{供应商.id }}中出现无效或意外的标记。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未捕获的语法错误。在<input id={{供应商.id }}中出现无效或意外的标记。相关的知识,希望对你有一定的参考价值。
我试图在输入[type='checkbox']上点击函数提交表单,而不使用ajax-jquery刷新页面。另外,我正在开发一个Django Web应用程序。
下面是我的表单元素代码
{% if vendor.accountEnabled %}
<form id="form" action="{% url 'change_account_switch' vendor.id %}"
method="post">
{% csrf_token %}
<div class="custom-control custom-switch">
<input onclick="switchAcc('{{ vendor.id }}customSwitch1');"
type="checkbox"
name="switch"
class="custom-control-input" id="{{ vendor.id }}customSwitch1"
checked>
<label class="custom-control-label" for="{{ vendor.id }}customSwitch1">Enable</label>
</div>
</form>
{% else %}
<form id="form" action="{% url 'change_account_switch' vendor.id %}"
method="post">
{% csrf_token %}
<div class="custom-control custom-switch">
<input onclick="switchAcc('{{ vendor.id }}customSwitch1');"
type="checkbox"
name="switch"
class="custom-control-input" id="{{ vendor.id }}customSwitch1">
<label class="custom-control-label" for="{{ vendor.id }}customSwitch1">Enable</label>
</div>
</form>
{% endif %}
这是我的JS代码
function switchAcc(cb_id) {
let switchBtn = $('#' + cb_id).is(':checked');
console.log(switchBtn)
console.log(cb_id)
$.ajax({
url: $('#form').attr('action'),
data: {
'status': switchBtn
},
dataType: 'json',
success: function (data) {
console.log(data)
if (data.is_done) {
alert("A user with this username already exists.");
}
},
error: function (e) {
console.log(e.message);
}
});
}
Django views.py ----
@login_required(login_url='/login/')
def change_account_switch(request, doc_id):
ref = db.collection('vendorUsers').document(doc_id)
switch = request.GET.get('status', None)
if switch == 'true':
switch = True
elif switch == 'false':
switch = False
ref.update({
'accountEnabled': switch,
})
data = {
'is_done': ref.get().to_dict()['accountEnabled'],
}
return JsonResponse(data)
我有一个更多的问题,看看我的表单元素代码,我在那里显示多个用户,每个用户在他们的个人资料数据库中包含accountEnabled字段。. . .
现在,看看我的views.py代码。在该文件中,我根据切换按钮(复选框)更新accountEnabled字段。. .
但问题是,列表中只有第一个用户的账户已启用字段在更新。–
你需要在函数中使用 ''
这就是你目前收到的错误的原因。,
靠近 }.error..
那你就用错误的方式来称呼你的形式行动,它应该是这样的 $('form').attr('action')
而这 {#url: '/ajax/change_account_switch/{{ doc_id }}',#}
也出现了错误。
工作的jquery代码。
function switchAcc(doc_id) {
console.log("vendor_id ="+doc_id); //your id
let switchBtn = $('input[name="switch"]').checked;
console.log("form_action = "+$('form').attr('action'));
$.ajax({
// {#url: '/ajax/change_account_switch/{{ doc_id }}',#}
url: $('form').attr('action'), //form action
data: {
'status': switchBtn
},
dataType: 'json',
success: function(data) {
console.log(data)
if (data.is_done) {
alert("A user with this username already exists.");
}
}, //, was missing
error: function(e) {
//console.log(e.message);
}
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="{% url 'change_account_switch' vendor.id %}" method="post">
{% csrf_token %}
<div class="custom-control custom-switch">
<!--use here '{{ vendor.id }}'-->
<input onclick="switchAcc('{{ vendor.id }}');" type="checkbox" name="switch" class="custom-control-input" id="customSwitch1" checked>
<label class="custom-control-label" for="customSwitch1">Enable</label>
</div>
</form>
以上是关于未捕获的语法错误。在<input id={{供应商.id }}中出现无效或意外的标记。的主要内容,如果未能解决你的问题,请参考以下文章
作为 ID 的 JQuery 变量导致未捕获错误:语法错误,无法识别的表达式:'#cell32'
未捕获的错误:语法错误,无法识别的表达式:不支持的伪:[重复]
未捕获的错误:语法错误,无法识别的表达式:select:[id * =“devices_0_command”] [关闭]