フォームでいっぱいの簡単なテスト ページに取り組んでいます。あなたが数日前に投稿したように、私は jquery を使用して ajax を使用し、送信ボタンの 1 つが押されたらページを更新しないようにしています。ここで見つけたテンプレートに従ってください:http://jquery.malsup.com/form/
私は自分のウェブページにこのコードを追加しました:
<script>
$(document).ready(function() {
// bind 'myForm' and provide a simple callback function
$('#myForm').ajaxForm(function() {
alert("Thank you for your comment!");
});
});
</script>
私が経験したことは、フォームが完全に機能するようになりましたが、ajax setTimeout 関数が機能しなくなったことです! 前のコードを削除すると、ajax setTimeout が再び機能します。なぜそれが好きなのか、手がかりはありますか?
<script type="text/javascript">
function myff(abc)
{
var
$http,
$self = arguments.callee;
if (window.XMLHttpRequest) {
$http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
$http = new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {
$http = new ActiveXObject('Microsoft.XMLHTTP');
}
}
if ($http) {
$http.onreadystatechange = function()
{
if (/4|^complete$/.test($http.readyState)) {
document.getElementById('ReloadThis3').innerHTML = $http.responseText;
setTimeout(function(){$self(abc);}, 1000);
}
};
$http.open('GET', 'loadfunc.php' + '?abc=' + abc);
$http.send(null);
}
}
</script>
新しいコード:
<script>
$(document).ready(function() {
$('#s1hvform1').ajaxForm(function() {
});
sendreq(abc);
});
function sendreq(abc)
{
$.get('loadfu.php?abc='+abc,function(r)
{
$('#ReloadThis2').html(r);
setTimeout(function(){sendreq(abc);},1000); });
}
</script>
<div id="ReloadThis2">Loading data...</div>