点击SUBMIT按钮后隐藏输入从链接POST

时间:2013-04-15 21:37:18

标签: javascript jquery input hyperlink hidden

我使用perl脚本生成一个带有多个链接的语言测试页面(其中没有一个指向不同的页面,它们用于取消隐藏一些提示),复选框和单个提交按钮。单击按钮时,我显然希望传递复选框的内容(通过POST方法),但是 - 我想知道通过单击链接可以窥视哪些提示。

现在,store values from clicked link into hidden input for post回答了类似的问题。但是,它似乎对我不起作用。

我脑子里有这个(等等)

<script src="jquery.js" type="text/javascript">
  $('a.mini-view').click(function(){
    var clicked = $(this).attr("clicked");
    var value = $(this).attr("data-student");
    if (!clicked){
        var newValue = $('hiddenfield').val() + "," + value;
        $('hiddenfield').val(newValue);
        $(this).attr("clicked", true);
    }
});
</script>

我的身体里有这个

<form action="./index.pl" method="post">
    <input type="hidden" name="hiddenfield" id="hiddenfield">
    <a  class="mini-view" id="HSntj" href="javascript:toggle25('CSntj','HSntj');" data-student="1">More</a>
    <a id="HSnt2j" href="javascript:toggle25('CSnt2j','HSnt2j');" data-student="2" class="mini-view">More</a></span>"; 
    <span align=left id="CSnt2j" style="display: none; margin-top: 6px;">something</span>
</form>

但是当我将所有输入提交到index.pl脚本

print $input{'hiddenfield'};

......它实际上什么都没打印。我很确定这不是解析输入的问题,因为读取其他隐藏的值可以正常工作。

你有什么想法我做错了吗?

感谢您对此的帮助。

2 个答案:

答案 0 :(得分:1)

我将您的代码复制到jsFiddle并使其正常运行。看起来您最大的问题是没有正确识别您的隐藏字段(意味着您缺少$#(#hiddenfield')的#符号

$('a.mini-view').click(function(){
    var clicked = $(this).attr("clicked");
    var value = $(this).attr("data-student");
    if (!clicked){
        var newValue = $('#hiddenfield').val() + "," + value;
        $('#hiddenfield').val(newValue);
        $(this).attr("clicked", true);
    }
});

答案 1 :(得分:0)

一个问题是您定义脚本标记的方式。您同时拥有src属性和脚本正文。这意味着身体不会被应用。

试试这个:

<script src="jquery.js" type="text/javascript" />
<script type="text/javascript">
    ...blah blah
</script>

但是,我不认为$(this).attr("clicked");是一个东西。你想用这个来实现什么?

编辑:好的,我知道你在做什么。这是一个自定义属性。更好的方法可能是使用数据属性,因为它实际上是HTML5中的有效HTML。

var clicked = $(this).data("clicked")

$(this).attr("clicked", true);

这也适用于学生数据,你可以这样写:

var value = $(this).attr("data-student");