我不能让两个表单互相玩耍... - 意思是我有一个发送电子邮件的表单 - 另一个使用搜索功能。电子邮件表格工作正常。验证就好了,但是当我点击搜索按钮时,它什么也没做。 (如果我删除电子邮件表单,搜索表单工作正常)
我错过了什么?..呃...... 我一直在研究这个问题,但是我的脑子已经油炸了。我确信这很简单。
非常感谢你们的任何帮助。
<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验证的电子邮件表单。
答案 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来制作锚标记,它会触发提交表单。
享受:)