【发布时间】:2016-01-28 21:57:24
【问题描述】:
我正在使用 Django 和 Python 3。
我的 HTML 代码中有这个:
{% for category in categories() %}
<li class="c-menu__item fs-xsmall">
<a href="#" id="next-category">
{{ category}}
</a>
</li>
<input type="hidden" value="{{ category.code }}" id="category-id">
{% endfor %}
<div class="col-xs-4" id="sub_categories">
</div>
列出了几个类别。
我的脚本中有这个:
$( document ).on( 'click', '#next-category', function(e){
e.preventDefault();
$.ajax({
url : 'product_category/addAjax',
type : 'POST',
data : {
category: $( '#category-id').val(),
},
})
.fail(function( jqXHR, textStatus, errorThrown ){
console.log('FAIL');
})
.done(function(data){
console.log('DONE');
$('#sub_categories').prop('innerHTML',data["sub_categories"]);
});
return false;
});
当我打印:$('#category-id').val() 时,我总是得到相同的值。无论我选择列出的第一个类别还是最后一个类别,我都会得到相同的值。我不知道出了什么问题。
【问题讨论】:
-
第二个怎么选?
-
你打印了很多
<input ... id="category-id">,但所有的都有相同的id -
有点困惑您要完成的工作.. 但是如果您尝试将 category.code 与链接相关联.. 这样当点击链接时您会获得该类别的代码,您需要将隐藏的输入放在链接标签中,以便找到正确的输入。或者,只使用数据属性,例如:
<li class="c-menu__item fs-xsmall" data-code="{{ category.code }}">并忘记输入标签。 -
那你就可以
$( document ).on( 'click', '#next-category', function(e){ e.preventDefault(); alert($(this).attr("data-code")); }); -
另外
{% for category in categories() %}不知道怎么不会导致异常,当你不应该有括号时。
标签: javascript python html ajax django