【发布时间】:2010-03-30 02:30:02
【问题描述】:
我们有一个很长的表单,其中包含多个字段和 2 个不同的提交按钮。当用户单击第一个提交按钮(“照片搜索”)时,表单应该 POST 并且我们的脚本将根据用户在第一个提交按钮旁边的文本输入(“photo_search_text”)中输入的内容来搜索匹配的照片,并且重新加载整个表单,并将匹配的照片添加到表单中。单击表单末尾的第二个提交按钮(“保存更改”)后,它应该 POST 并且我们的脚本应该使用用户在表单中输入的信息更新数据库。
不幸的是,表单的布局使其无法分成 2 个单独的表单。我检查了整个表单 POST,不幸的是,无论单击哪个提交按钮,提交的字段都与处理表单提交的 perl 脚本相同,因此 perl 脚本无法根据按下哪个提交按钮来区分要执行的操作。我唯一能想到的是更新第二个提交按钮的 onclick 操作,以便在提交表单之前清除“photo_search_text”字段,然后仅在该字段具有值时执行照片搜索。
基于这一切,我的问题是当有人点击第二个提交按钮时,可以清除“photo_search_text”字段的 JavaScript 看起来是什么?以下是我迄今为止尝试过的方法,但都没有成功:
<input type="submit"
name="submit"
onclick="document.update-form.photo_search_text.value='';"
value="Save Changes"
>
<input type="submit"
name="submit"
onsubmit="document.update-form.photo_search_text.value='';"
value="Save Changes"
>
<input type="submit"
name="submit"
onclick="document.getElementById('photo_search_text')='';"
value="Save Changes"
>
我们还在网站上使用 JQuery,所以如果有办法使用 jQuery 而不是普通的 JavaScript,请随时提供示例代码。最后,如果有另一种方法来处理这个我没有想到的任何和所有建议都会受到欢迎。
提前感谢您的帮助!
【问题讨论】:
-
使用不同名称命名提交按钮。像 submit1、sumbit2、submit3
-
@vittore - 我已经尝试过了,但由于某种原因 CGI.pm 没有捕获此信息,因此在处理表单时无法检查它。
-
Nick Craver 的 jquery 函数可以做到
标签: javascript jquery perl forms onsubmit