我有一个包含一系列输入的页面,类似于表单但不是。按下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());
});
答案 0 :(得分:0)
从最终陈述中删除()
。
s/submitForm\(\)/submitForm/
。
你实际上在调用这个函数。
看起来像这样:
$(function() {
$("#btnContact").on("click", submitForm);
});
答案 1 :(得分:0)
<强> Working fiddle 强>
您的代码在多次更改后仍然有效。
替换:
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;
替换:
$("#btnContact").on("click", submitForm());
通过:
$("#btnContact").on("click", function(){
submitForm();
});
替换:
<button id="btnContact" type="submit">Send Message</button>
通过:
<button id="btnContact" type="button">Send Message</button>
希望这有帮助。