从表单提交执行脚本
Executing script from from submit
当使用 button
时这有效(加载器显示直到页面加载):
<script>
$(document).ready(function(){
$(".loader").hide();
$(".overlay").fadeOut(1000);
$('button').click(function() {
$(".loader").fadeIn("fast");
$(".overlay").fadeIn(100);
});
});
</script>
但是如果我使用 Submit
它不会:
我正在尝试以下操作:
<script>
$(document).ready(function(){
$(".loader").hide();
$(".overlay").fadeOut(1000);
$("form").submit(function() {
$(".loader").fadeIn("fast");
$(".overlay").fadeIn(100);
});
});
</script>
我也试过不欢而散:
$(input[type="submit"]).click(function() {
我希望它适用于页面上的所有提交,因此不想使用 ID。欢迎任何指点。
更新
$("form").submit(function(e) {
成功了。
您必须阻止表单的默认行为,否则它会提交(并且浏览器将切换到下一页[表单中的操作])。
要禁用 submit
操作,您需要在 submit/click
函数中使用 event.preventDefault()
。
如果您确实需要提交表单 - 您可以添加一个变量来检查提交是否已被阻止,并根据该变量来阻止(或在 submit
函数中提交表单):
var submitPrevented = false;
$("form").submit(function(e) {
if (!submitPrevented) {
submitPrevented = true;
e.preventDefault()
}
$(".loader").fadeIn("fast");
$(".overlay").fadeIn(100);
var that = this;
setTimeout(function() {
that.submit();
}, 1000);
});
Notice that I added the e
element as a parameter to the function.
关于您上次编写的代码 - 那里存在语法错误。这是正确的语法:
$('input[type="submit"]').click(function() {
当使用 button
时这有效(加载器显示直到页面加载):
<script>
$(document).ready(function(){
$(".loader").hide();
$(".overlay").fadeOut(1000);
$('button').click(function() {
$(".loader").fadeIn("fast");
$(".overlay").fadeIn(100);
});
});
</script>
但是如果我使用 Submit
它不会:
我正在尝试以下操作:
<script>
$(document).ready(function(){
$(".loader").hide();
$(".overlay").fadeOut(1000);
$("form").submit(function() {
$(".loader").fadeIn("fast");
$(".overlay").fadeIn(100);
});
});
</script>
我也试过不欢而散:
$(input[type="submit"]).click(function() {
我希望它适用于页面上的所有提交,因此不想使用 ID。欢迎任何指点。
更新
$("form").submit(function(e) {
成功了。
您必须阻止表单的默认行为,否则它会提交(并且浏览器将切换到下一页[表单中的操作])。
要禁用 submit
操作,您需要在 submit/click
函数中使用 event.preventDefault()
。
如果您确实需要提交表单 - 您可以添加一个变量来检查提交是否已被阻止,并根据该变量来阻止(或在 submit
函数中提交表单):
var submitPrevented = false;
$("form").submit(function(e) {
if (!submitPrevented) {
submitPrevented = true;
e.preventDefault()
}
$(".loader").fadeIn("fast");
$(".overlay").fadeIn(100);
var that = this;
setTimeout(function() {
that.submit();
}, 1000);
});
Notice that I added the
e
element as a parameter to the function.
关于您上次编写的代码 - 那里存在语法错误。这是正确的语法:
$('input[type="submit"]').click(function() {