【问题标题】:JavaScript To Clear Form Field On Submit Before Form Submission To Perl ScriptJavaScript 在表单提交到 Perl 脚本之前清除表单字段
【发布时间】: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


【解决方案1】:

如果你给输入一个这样的 ID:

<input ID="nosearch" type="submit" name="submit" value="Save Changes">

你可以通过 jQuery 更容易地做到这一点,像这样:

$(function() {
  $("#nosearch").click(function() {
    $("#photo_search_text").val("");
  });
});

【讨论】:

  • @Nike - 奇怪的是,这实际上并没有达到预期的效果,但它所做的是让 perl 的 CGI.pm 模块捕获提交按钮名称值。使用这些值,我们现在能够区分提交。很奇怪,但它有效。感谢您的帮助!
  • @Nick - 忘记我的最后评论。这是 perl(读取“I”)呈现 JQuery 代码的方式中的错误。更正后,您的代码在提交表单之前删除了“photo_search_text”字段,这正如我们所希望的那样。再次感谢您的帮助!
猜你喜欢
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-25
  • 2023-03-22
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
相关资源
最近更新 更多