我有一个表格中每个条目的更多信息链接(如屏幕截图所示),显示其他信息。
当用户点击更多信息链接时,它是否有可能从该链接中获取值,将其存储在隐藏的输入字段中,那么在帖子中我可以获取这些值吗?
“更多”信息链接的命名约定是:
<a href="#" data-student="2" class="mini-view">more</a>
<a href="#" data-student="6" class="mini-view">more</a>
<a href="#" data-student="7" class="mini-view">more</a>
<a href="#" data-student="9" class="mini-view">more</a>
因此,如果点击了所有链接,它会发布如下数据:2,6,7,9 - 用户可以根据需要多次点击“更多”信息链接,所以我只想要在第一次点击时记录它。
因为我要将这些值转换为数组并使用它来进行后端检查。
答案 0 :(得分:2)
var clickedIds = '';
$('.mini-view').on('click', function(){
// need to check if the "more info" has already been clicked
if(!$(this).data('clicked')){
//if not, update the (serialized) list of clicked student ids:
clickedIds = clickedIds + $(this).data('student') + ',';
//update that value to the hidden field
//could have done this w/o the clickedIds var, but I think it's cleaner
//this way:
$('#myHiddenField').val(clickedIds);
// then mark it as already clicked.
$(this).data('clicked', true)
}
});
这会将序列化列表放入隐藏变量中,看起来像'2,6,7,9'
答案 1 :(得分:1)
是的,可以做到。
$('a.mini-view').click(function(){
$('#id-of-hidden-field').val($(this).attr('data-student'));
});
所以我做了什么。
如果您想添加多个值,例如逗号分隔然后执行此操作
$('a.mini-view').click(function(){
var hf = $('#id-of-hidden-field');
var newVal = hf.val() + (hf.val().length > 0 ? ',' : '') + $(this).attr('data-student');
hf.val(newVal);
});
您将拥有1,4,23,1,19
答案 2 :(得分:0)
你可以做的就是每次点击链接,检查“clicked”属性是否为true / exists,如果不是,则将值添加到某个隐藏输入,然后将“clicked”属性添加到链接。
这样,如果他们多次点击它,它只会将它添加到隐藏的输入一次。
这样的事情:
$('a.mini-view').click(function(){
var clicked = $(this).attr("clicked");
var value = $(this).attr("data-student");
if (!clicked){
var newValue = $('#hidden-field').val() + "," + value;
$('#hidden-field').val(newValue);
$(this).attr("clicked", true);
}
});