2013-04-15 44 views
0

我使用perl脚本来生成一个语言测试页与几个链接(其中没有一个是指不同的页面,他们用于取消隐藏一些提示),复选框和一个提交按钮。当点击按钮时,我显然希望通过POST方法传递复选框的内容,但也希望通过单击链接知道哪些提示已被窥视。在SUBMIT按钮被击中后隐藏输入POST'ed从链接

现在,类似的问题在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'}; 

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

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

我希望你对此有所帮助。

回答

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"); 
+0

你给我的想法意味着你缺乏#符号为$(“#hiddenfield”) - 这可能是关于jQuery的对象旁边的结合通常js函数在一个单一的脚本标签...谢谢 – hrehor

1

我复制你的代码到jsFiddle,并得到它的工作。它看起来像你的最大的问题就是无法正确识别你的隐藏字段(

$('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); 
    } 
}); 
+0

我尝试过和没有#,它似乎并没有影响结果。我认为我只需要一致的命名隐藏字段和#没有特别的意义。 ..是否?对不起... – hrehor

+0

这是美丽的!我不知道jsFiddle。谢谢! – hrehor

+0

#号是一个选择器,告诉jQuery寻找一个字段,其ID跟随#的任何文本。像CSS一样工作。http://www.w3schools.com/css/css_id_class.asp –