2019-05-25 06:13
浏览 485


I am trying to get a hyperlink element to act as a form submit button. This sort of question has been answered multiple times over the years but, for some reason, I am not able to get it to work even with cut-n-pasted code and I'm wondering if I'm missing something trivially simple that my eyes are too bugged out to see. The full code is here:

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


    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>


The input submit element ("Send Email") works fine. The hyperlink ("Sign Up!") also works fine and calls the javascript function so that the alert() box in the function shows up.

So, it's just the submit() call that's not doing anything--I even printed out document.signup_form in an alert() box to confirm that it's defined (it is). So what am I missing here?

Thanks for any help!

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • doukuangxiu1621 2019-05-25 06:58

    There is a weird thing with how forms work with Javascript - each field is accessible by using formElement.fieldName. Unfortunately, that means that if you name a field input submit, all of a sudden the built-in formElement.submit() function is replaced by your input element. So in your code, document.signup_form.submit() is failing because it is calling the element, not the method, and you can't call an element as a function. See this SO QA for details.

    The fix is easy - change:

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


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

    Also, as others have noted, you will want to give your form a valid action. Also, in general it might be preferred to access things by id (document.getElementById()) instead of by things like document.signup_form.

    解决 无用
    打赏 举报

相关推荐 更多相似问题