从表单提交Javascript/Django中提取ID的更好方法
目前,我所编写的代码工作正常,但它似乎相当粗糙。基本上,以下是我的(简化): JQuery就绪:从表单提交Javascript/Django中提取ID的更好方法,javascript,jquery,django,forms,post,Javascript,Jquery,Django,Forms,Post,目前,我所编写的代码工作正常,但它似乎相当粗糙。基本上,以下是我的(简化): JQuery就绪: <script type="text/javascript"> $(document).ready(function() { $('div.partDelete').click(function() { // TODO this seems like a dirty hack var split = this.id.split(
<script type="text/javascript">
$(document).ready(function() {
$('div.partDelete').click(function() {
// TODO this seems like a dirty hack
var split = this.id.split('_');
if(split.length == 3) {
$('#part_id').val(split[0]);
alert($('#part_id').val());
$('#removePartForm').submit();
} else {
alert('There was a problem removing the selected part');
}
});
</script>
HTML更改:
<div class="partDelete" data-id="{{ part.id }}">remove</div>
删除
首先;ID不应该以数字开头(http://www.w3.org/TR/html4/types.html#type-姓名)
除此之外,您通常会使用data-*属性来设置ID,以便从服务器端与JS通信。data-*属性可以是您想要的任何内容。因此数据foo=”“是一个有效的属性
示例:HTML: 希望这有帮助
编辑:移动注释使其更清晰,更改示例使其更具体地针对OP的问题 首先;ID不应该以数字开头(http://www.w3.org/TR/html4/types.html#type-姓名) 除此之外,您通常会使用data-*属性来设置ID,以便从服务器端与JS通信。data-*属性可以是您想要的任何内容。因此数据foo=”“是一个有效的属性 示例:
HTML: 希望这有帮助
编辑:移动注释使其更清晰,更改示例使其更具体地针对OP的问题 谢谢!毕竟,我不需要使用
。每个函数。我简直不敢相信我从来都不知道data-*
属性!谢谢毕竟,我不需要使用。每个函数。我简直不敢相信我从来都不知道data-*
属性!
$('div.partDelete').click(function() {
var selected_id =$(this).data("id");
$('#part_id').val(selected_id);
$('#removePartForm').submit();
});
<div class="partDelete" data-id="{{ part.id }}">remove</div>
<div class="item" data-id="{{ part.id }}">
<p>Foo</p>
</div>
$(function () { // same as document read
$(".button-class").on("click", function () {
// Here "this" will be the element
var id = $(this).data("id"); // same as getting attribute data-id
// Could also use $(this).attr("data-id")
});
});