我做了一个dajngo网站,如果产品有一个字段is_active = False,它会从商店的购物篮中删除它。
所以在html文件中写了这个脚本:
{% if table.is_active %}
<div data-index="{{ table.id }}" class="table table-item">
<a href="{% url 'table_details' table.id %}" class="table-link">
<img class="table-img ib" src="{{ table.image.url }}" alt="">
<p class="title ib">{{ table.name }}</p>
</a>
</div>
{% else %}
<div data-index="{{ table.id }}" class="table table-item"></div>
<script>
console.log("hello world 1")
$(document).ready(function (event) {
console.log("hello world 2")
event.preventDefault();
var tablid = $(this).data('index');
console.log(tablid)
$.ajax({
type: 'POST',
url: '{% url "basket:basket_delete" %}',
data: {
tableid: $(this).data('index'),
csrfmiddlewaretoken: "{{csrf_token}}",
action: 'post'
},
success: function (json) {
$('.table-item[data-index="' + tablid + '"]').remove();
document.getElementById("subtotal").innerHTML = json.subtotal;
document.getElementById("basket-qty").innerHTML = json.qty
},
error: function (xhr, errmsg, err) {}
});
})
</script>
{% endif %}
字符串
在console.log中,它给了我一个警告和错误,文本相同,
# Uncaught TypeError: event.preventDefault is not a function
# at HTMLDocument.<anonymous> (basket/:116:27)
# at e (jquery-3.5.1.min.js:2:30005)
# at t (jquery-3.5.1.min.js:2:30307)
型
所以我做了什么,我试图删除与事件.preventDefault()行,但随后div的数据索引停止在tablid变量中使用,当我coneole.log(tablid)时,它显示,未定义。
1条答案
按热度按时间vptzau2j1#
在您的示例中,
this
引用整个文档,而不是div元素:字符串
相反,设置元素的id(例如
id='foo'
)并使用它:型