我在表格中有一个Select标签,我给出了静态选项, 我的问题是知道“如何检索我选择的值”,我不想使用任何Button提交我选择的值。所以我想选择选择标签的“Onchange事件”。
这是填充select标签的代码:
print qq[<td>Records PerPage</td>];
print qq[<td><select name="'records'" size="1"><option value="2">2<option value="4"
selected>4<option value="6">6<option value="10">10</select></td></tr>];
请帮帮我找到解决方案。谢谢
答案 0 :(得分:2)
编辑:WITH ONCHANGE
好的从组合框中获取你的价值使用javascript
function getCombo1(sel) {
var value = sel.options[sel.selectedIndex].value;
}
<select id="combo1" onchange="getCombo1(this)">
<option value="">Select combo</option>
<option value="Value1">Text1</option>
<option value="Value2">Text2</option>
<option value="Value3">Text3</option>
</select>
现在,每当用户选择或更改组合框的值时,将调用名为“sel”的函数来更新存储该值的变量。
希望这会对你有所帮助。 如果有,请告诉我。
<强> PK 强>
答案 1 :(得分:1)
正如rafl在评论中所说,Perl没有DOM事件。您必须通过JavaScript才能在不更改页面的情况下回复此事件。
以下是它的工作原理:Perl创建文本,由浏览器根据标识自己识别出来解释。因为,您的浏览器希望基本上下文是SGML / HTML文档,所以它将SGML / HTML标记解释为文档信息和布局指令。对于<script>
标记,如果脚本将自身标识为JavaScript(或未指定语言),则浏览器会将该标记内的 text 解释为JavaScript并执行指定的操作。
Perl创建文本,只有客户端脚本在您的浏览器上运行,完全独立于创建文本的Perl。您可以通过表单和cookie(实际上是HTTP协议的一部分 - 通信的实际基本上下文)与服务器进行通信,但是必须向服务器发送另一个请求。唯一能告诉浏览器响应与浏览器交互的内容的是浏览器执行的客户端代码。
为了创建Web应用程序Perl(或任何其他服务器端语言),只需创建使用浏览器功能将数据发送回服务器的文本,以便服务器端进程可以读取状态和生成复制交互的新文本。
动态执行此操作而不更改页面的当前方法是Ajax,它基本上为JavaScript提供了一个对象来发出服务器请求。 (这个想法并不是全新的,我们曾经在Java Applets中完成类似的事情,只是Ajax裁掉了一个中间人。)一个很好的JavaScript / Ajax工具包是prototype library。