1

对于表格中的每个条目,我都有一个更多信息链接(如屏幕截图所示),它显示了附加信息。

当用户单击更多信息链接时,是否有可能从该链接中获取值,将其存储在隐藏的输入字段中,以便发布后我可以获取这些值?

在此处输入图像描述

“更多”信息链接的命名约定是:

<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 - 用户可以根据需要多次单击“更多”信息链接,所以我只想将其记录在第一次点击。

因为我要将这些值转换成一个数组并用它来做一些后端检查。

4

3 回答 3

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”,

于 2012-08-02T18:54:54.483 回答
1

是的,它可以做到。

$('a.mini-view').click(function(){
   $('#id-of-hidden-field').val($(this).attr('data-student'));
});

所以我做了什么。

  1. 附上点击链接
  2. 使用属性值并将其添加到隐藏字段中
  3. 它已经完成了。

如果你想添加多个值,例如逗号分隔然后这样做

$('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

于 2012-08-02T18:41:39.747 回答
0

您可以做的是每次单击链接时,检查“clicked”属性是否为真/存在,如果不是,则将该值添加到一些隐藏的输入,然后将“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);
    }
});
于 2012-08-02T18:55:36.780 回答