使超链接成为表单提交按钮

时间:2019-05-25 06:13:47

标签: javascript php html forms submit

我正在尝试获取一个超链接元素以用作表单提交按钮。多年来,这种问题已经被多次回答,但是由于某种原因,即使使用剪切粘贴的代码,我也无法使其正常工作,我想知道我是否遗漏了一些简单的事情,眼睛太烦人了,看不见。完整的代码在这里:

<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function signup() {
    alert("Form is " + document.signup_form);
    document.signup_form.submit() ;
}
-->
</script>
</head>

<body>

  <?php
    echo("Submit is [" . $_POST['submit'] . "]");
  ?>

  <form method="post" name="signup_form" id="signup_form" action="" >
    <input type="text" name="from_email" placeholder="e-mail address"><br>
    <input type="submit" name="submit" value="Send Email"> 
    <a href="javascript:signup()">Sign Up!</a><br>
  </form>

</body>
</html>

输入的提交元素(“发送电子邮件”)可以正常工作。超链接(“注册!”)也可以正常工作,并调用javascript函数,以便显示该函数中的alert()框。

因此,只是submit()调用什么都没做-我什至在document.signup_form框中打印了alert(),以确认它已定义。那我在这里想念什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

表单如何与Javascript一起使用有一个奇怪的事情-每个字段都可以使用formElement.fieldName进行访问。不幸的是,这意味着如果您将字段输入命名为submit,内置的formElement.submit()函数会突然被您的输入元素替换。因此,在您的代码中,document.signup_form.submit()失败了,因为它正在调用元素而不是方法,并且您不能将元素作为函数调用。有关详情,请参见此SO QA

修复很容易-更改:

<input type="submit" name="submit" value="Send Email"> 

收件人:

<input type="submit" name="submitBtn" value="Send Email">

此外,正如其他人指出的那样,您将希望对表单进行有效的操作。而且,通常最好通过id(document.getElementById())而不是document.signup_form之类的东西来访问事物。

答案 1 :(得分:0)

您的<form>元素的action属性中缺少值。引用规格:

  

您还必须指定将处理以下内容的服务的URL:   使用action属性提交数据

链接here