所以我在类似问题上看到了很多答案,但没有找到如何使其正常工作。 我在查询中有很多函数,并且所有函数都没有完成,因为html事件加载了下一页。所以我需要的是如何使html事件等到jquery检查它应检查的所有内容。
所以jquery的例子是
jQuery.noConflict();
jQuery(document).ready(function($) {
$(document).on("click","input[name=open]", function () {
var login = $("input[name=field1]").val();
var pas = $("input[name=field2]").val();
alert('I call it');
$.post("index.php", {
st: 1,
field1: field1,
field2: field2
}, function(data) {
alert(data);
if ($.trim(data) == 'er') {
alert("Sorry incorrect data");
return false;
}
else
return true;
});
});
});
<div>
<form method="POST" action="index.php?cd=in">
<!----code here --->
<div>
<input name="open" class="field_submit" type="submit" size="7" value="IN" ">
</div>
因此,当没有action="index.php?cd=in"
行时,该函数可以正常工作。所以发生的只是启动函数但没有等待结果并进行重定向。所以有几种方法可以阻止它:
onclick="return function-name();"
但问题是如何纠正实现jquery文件的功能因为当我把函数放在控制台里面时给我一个错误,因为我没有定义函数。所以问题是如何在jquery文件中准确地实现它对HTML文件中的onclick事件起作用。或者如果你知道其他更好的变种来实现它。感谢
答案 0 :(得分:2)
您需要的是:
// bind submit event on form, not click of submit
// because a form can be submited without clicking submit button
$(document).on("submit", "form:has(input[name=open])", function(e) {
e.preventDefault(); // prevent default behaviour
var self = this; // keep ref on form
var login = $(this).find("input[name=field1]").val();
var pass = $(this).find("input[name=field2]").val();
alert('I call it');
$.post("index.php", {
st: 1,
login: login,
pass: pass
}, function(data) {
alert(data);
if ($.trim(data) == 'er') {
alert("Sorry incorrect data");
return false; // if error, return whatever value
}
self.submit(); // submit the FORM calling submit DOM API method (doesn't trigger jq submit handler)
});
});