使超链接一个表单提交按钮



我正在尝试获得一个超链接元素,以充当表单提交按钮。多年来,这种问题已经多次回答眼睛太漏了看。完整的代码在这里:

<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()调用什么都没做 - 我甚至在alert()框中打印出document.signup_form以确认它已定义(是(。那我在这里错过了什么?

感谢您的任何帮助!

与JavaScript一起使用的表单如何使用formElement.fieldName可以访问每个字段,这是一件奇怪的事情。不幸的是,这意味着,如果您命名了字段输入submit,则突然将内置的formElement.submit()函数替换为您的输入元素。因此,在您的代码中,document.signup_form.submit()是因为它调用元素而不是方法,而您无法将元素称为函数。有关详细信息,请参阅此质量质量。

修复很容易 - 更改:

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

to:

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

另外,正如其他人所指出的那样,您将要为您的表格做出有效的措施。另外,通常,它可能优先使用ID(document.getElementById()(而不是document.signup_form

访问事物。

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

您还必须指定服务的URL 提交的数据,使用操作属性

链接此处

最新更新