试图通过页面加载自动提交停止按钮

时间:2015-08-25 22:22:22

标签: javascript html ajax twitter-bootstrap button

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

JS:

    keys = request_keys.respond_to?(:keys) ? request_keys.keys : request_keys
    values = keys.map { |k| self.request.send(k) } <--ERROR THIS LINE
    Hash[keys.zip(values)]
  end

我的HTML:

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()); 
});

2 个答案:

答案 0 :(得分:0)

从最终陈述中删除()

s/submitForm\(\)/submitForm/

你实际上在调用这个函数。

http://jsfiddle.net/fx6hefe4/

看起来像这样:

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

答案 1 :(得分:0)

<强> 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>
    
  4. 希望这有帮助。