用于清除表单字段的JavaScript在表单提交到Perl脚本之前提交

时间:2010-03-30 02:30:03

标签: javascript jquery perl forms onsubmit

我们有一个很长的表单,有很多字段和2个不同的提交按钮。当用户点击第一个提交按钮(“照片搜索”)时,表单应该POST,我们的脚本将根据用户在第一个提交按钮旁边的文本输入(“photo_search_text”)中输入的内容搜索匹配的照片,重新加载整个表单,并将匹配的照片添加到表单中。单击表单末尾的第二个提交按钮(“保存更改”)后,它应该POST,我们的脚本应该使用用户在表单中输入的信息更新数据库。

不幸的是,表单的布局使得无法将其分成两个单独的表单。我检查了整个表单POST,不幸的是,无论单击哪个提交按钮,提交的字段都与处理表单提交的perl脚本相同,因此perl脚本无法根据推送的提交按钮来区分要执行的操作。我唯一能想到的是更新第二个提交按钮的onclick动作,以便在提交表单之前清除“photo_search_text”字段,然后仅在该字段具有值时才执行照片搜索。

基于这一切,我的问题是,当有人点击第二个提交按钮时,JavaScript的外观可以清除“photo_search_text”字段?以下是我迄今为止所尝试的一切都没有成功:

<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,那么可以随意提供示例代码。最后,如果还有另一种方法可以解决这个问题,我不会考虑任何问题,欢迎提出所有建议。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

如果您为输入提供如下ID:

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

你可以通过jQuery更轻松地完成它,比如:

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