0

我正在尝试使用超链接提交表单,但它没有将值发布到下一页。这是我的代码表单:

<?php
$email = array('name'=>'accountno','id'=>'accountno','value'=>set_value('email'));
 ?>    

<form method="post" id = "login_form" action="/salesrep/check" name = "login_form" class="custLogin">
<fieldset style="color: #BD1313; width: 440px;">  <input type="hidden" name="submit_type" id="submit_type" value="account_only">
<br><center><label for="customerNo"><b>Customer No:</b></label>
<?  echo form_input($email);?>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="/salesrep/check" class="shopping-icon" onclick="document.login_form.submit()">Submit</a><? echo form_input($button);?>   </center>
   <p>&nbsp;</p>
           </fieldset> 
   </form>

下一页的代码如下所示:

<?
print_array($_POST);
         die();
 ?>

当我在这里使用按钮时,它成功地将值发布到下一页。但是我无法使用 onclick 事件上的超链接发布值。我在哪里犯错?当我已经在文本框中插入值时,为什么我得到空数组。??或者有什么办法我可以使用链接发布值并在下一页检索它们???

4

1 回答 1

0

真正的问题是您首先尝试使用链接和一些 JavaScript 来提交表单。不要这样做。按钮通知用户他们将提交表单。当它们处于表单模式时,它们将显示在屏幕阅读器中(带有某些 JavaScript 的链接不会)。他们“只是工作”。

如果您坚持使用链接和一些 JavaScript,那么您的代码不起作用的原因是 JavaScript 运行,表单开始提交,然后链接被跟踪并且向页面发出 GET 请求。

通常你可以调用preventDefault事件来阻止它,但你使用的是旧式的内在事件属性,所以你需要return false;从那里开始。

推荐阅读:渐进式增强不显眼的 JavaScript

于 2013-02-14T10:05:26.050 回答