【问题标题】:Trying to Stop Button From Auto-Submitting With Page Load尝试停止按钮自动提交页面加载
【发布时间】:2015-08-25 22:22:22
【问题描述】:

我有一个包含一系列输入的页面,类似于表单但不是。按提交后,我想运行我的函数 submitForm()。但是,每次页面加载时,它都会自动点击提交。关于如何阻止这种情况发生的任何想法?

JS:

function submitForm(){
    // Initiate Variables With Form Content
    var fname = document.getElementById(name).value();
    var femail = document.getElementById(email).value();
    var fmessage = document.getElementById(message).value();


    $.ajax({
        type: "POST",
        url: "cgi-bin/process.php",
        data: "name=" + fname + "&email=" + femail + "&message=" + fmessage,
        success : function(text){
            if (text == "success"){
                formSuccess();
        }
    }
    });
}
function formSuccess(){
    $( "#msgSubmit" ).removeClass( "hidden" );
}

$(function() {
    $("#btnContact").on("click", submitForm()); 
});

任何我的 HTML:

<div class="row">
    <label for="name" class="h4">Name</label>
    <input type="text" class="form-control" id="name" placeholder="Enter name"
      required="">
    <label for="email" class="h4">Email</label>
    <input type="email" class="form-control" id="email" placeholder="Enter email" 
    required="">
    <label for="message" class="h4 ">Message</label>
    <textarea id="message" class="form-control" rows="5" placeholder="Enter your message"
    required=""></textarea>
    </div>
    <button id="btnContact" type="submit">Send Message</button>
    <div id="msgSubmit" class="h3 text-center hidden">Message Submitted!</div>
</div>

【问题讨论】:

  • 尝试更改按钮类型,type="button"

标签: javascript html ajax twitter-bootstrap button


【解决方案1】:

从您的最终声明中删除()

s/submitForm\(\)/submitForm/.

您实际上是在调用该函数。

http://jsfiddle.net/fx6hefe4/

看起来像这样:

$(function() { $("#btnContact").on("click", submitForm); });

【讨论】:

【解决方案2】:

Working fiddle.

您的代码在经过多次更改后可以正常工作。

  1. 替换:

    var fname = document.getElementById(name).value();
    var femail = document.getElementById(email).value();
    var fmessage = document.getElementById(message).value();
    

    作者:

    var fname = document.getElementById('name').value;
    var femail = document.getElementById('email').value;
    var fmessage = document.getElementById('message').value;
    
  2. 替换:

    $("#btnContact").on("click", submitForm()); 
    

    作者:

    $("#btnContact").on("click", function(){
        submitForm();
    }); 
    
  3. 替换:

    <button id="btnContact" type="submit">Send Message</button>
    

    作者:

    <button id="btnContact" type="button">Send Message</button>
    

希望这会有所帮助。

【讨论】:

  • 感谢您的帮助! cdbitesky 先回答,所以必须给他们正确的答案,但我很感激这个答案!
猜你喜欢
  • 2019-02-09
  • 1970-01-01
  • 2021-11-12
  • 2013-04-28
  • 2022-01-16
  • 2023-03-13
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多