一页上有两个javascript表单

时间:2014-07-14 20:32:21

标签: php forms

我不能让两个表单互相玩耍... - 意思是我有一个发送电子邮件的表单 - 另一个使用搜索功能。电子邮件表格工作正常。验证就好了,但是当我点击搜索按钮时,它什么也没做。 (如果我删除电子邮件表单,搜索表单工作正常)

我错过了什么?..呃...... 我一直在研究这个问题,但是我的脑子已经油炸了。我确信这很简单。

非常感谢你们的任何帮助。

<form method="post" action="contact.php" name="contactform" id="contactform">
  <div class="full-lenght">
    <div class="to-left">Name<br>
      <span class="small-required">Required</span> </div>
    <div class="to-right">
      <input name="name" type="text" id="name"  value="" class="contact-field" />
    </div>
  </div>
  <div class="clear"></div>
  <div class="full-lenght">
    <div class="to-left">Email<br>
      <span class="small-required">Required</span> </div>
    <div class="to-right">
      <input name="email" type="text" id="email"  value="" class="contact-field" />
    </div>
  </div>
  <div class="clear"></div>
  <div class="full-lenght">
    <div class="to-left">Phone<br>
      <span class="small-required">Required</span> </div>
    <div class="to-right">
      <input name="phone" type="text" id="phone"  value="" class="contact-field" />
    </div>
  </div>
  <div class="clear"></div>
  <div class="full-lenght">
    <div class="to-left">Message<br>
      <span class="small-required">Required</span> </div>
    <div class="to-right">
      <textarea name="comments" rows="3" id="comments"  class="contact-message"></textarea>
    </div>
  </div>
  <div class="clear"></div>
  <div class="clear"></div>
  <div class="human">3 + 1 = ?<br>
    <input name="verify" type="text" id="verify" size="4" value="" style="width: 30px;" />
    <input name="e" type="submit" class="contact-button" id="submit" value="Submit" />
  </div>
</form>
<div class="search">
  <form class="form" action="search_results.php" method="get">
    <input name="q" type="text" class="search_field" value="Search.." onfocus="if (this.value=='Search..') this.value='';">
    <a onclick=" document.forms[0].submit();return false" href="#"><img class="search_button" title="Search Button" src="images/search_button.jpg" alt="" width="24" height="24"></a> <br>
    <br>
  </form>
</div>

这是代码。第二种形式从搜索div开始。第一个是带有ajax验证的电子邮件表单。

3 个答案:

答案 0 :(得分:1)

试试这个,

以第二种形式

<form class="form" id="searchform" action="search_results.php" method="get">
    <input name="q" type="text" class="search_field" value="Search.." onfocus="if (this.value=='Search..') this.value='';" />
    <a onclick=" document.getElementById('searchform').submit();return false" href="#"><img class="search_button" title="Search Button" src="images/search_button.jpg" alt="" width="24" height="24"/></a> <br/>
        <br/>
  </form>

答案 1 :(得分:0)

这与PHP没有任何关系,但确实与JavaScript有关。

变化:

<a onclick=" document.forms[0].submit();return false" href="#">

为:

<a onclick="document.forms[1].submit();" href="#">

您在JavaScript中使用遗留DOM表示法,但这已经过时了。如果您有forms[0],那么您指的是DOM中的第一个表单(不是搜索表单)(联系表单是),forms[1]是搜索表单。单击该图标将在没有更改的情况下失败,但您可以在框中键入并按Enter键,它将起作用,因为您的JavaScript不会被触发(无点击)。我也认为没有必要在那里保留return false语句。

答案 2 :(得分:0)

<form class="form" action="search_results.php" method="get">
 <input name="q" type="text" class="search_field" value="Search.." onfocus="if (this.value=='Search..') this.value='';">
<input type="submit" value='Search'> <br>
<br>

这个问题你使用锚标记作为按钮形式,它不适用于提交表单,因此你可以用输入标记替换锚标记&#34;提交类型&#34;正如您在代码中看到的那样,或者当您单击它时可以使用JavaScript来制作锚标记,它会触发提交表单。

享受:)

相关问题