0

以下のコードを使用してフォームを更新せずに自動送信していますが、問題はフォームフィールドで手動送信ボタンを使用して送信すると正常に動作しますが、更新された自動送信です。フォームを送信してデータを mysql に保存したい。手動送信と自動送信ではデータが保存されますが、自動送信でページが更新されますが、これは望ましくありません

<script type="text/javascript">
window.onload = function() {
  setTimeout('document.form1.submit()',10000);
}
</script>

<script type="text/javascript" >
$(function() {
$(".button").click(function() {

var searchBox = $("#searchBox").val();
var dataString = 'searchBox='+ searchBox ;
if(searchBox=='')
{
   $('.success').fadeOut(200).hide();
   $('.error').fadeOut(200).show();
}
else
{
   $.ajax({
   type: "POST",
   url: "ytitest1.php",
   data: dataString,
   success: function(){
   $('.success').fadeIn(200).show();
   $('.error').fadeOut(200).hide();
}
});
}
return false;
});
});


 </script>

ここにライブリンクがあり ます http://way2enjoy.com/try/k/ytitest1.php

自動送信のみが必要ですが、ページは更新されません

4

3 に答える 3

0

あなたの .click 関数には e 引数があり、次に追加する必要があります

e.preventDefault();

関数の本体で

$(function() {
$(".button").click(function(e) {
e.preventDefault(); 
var searchBox = $("#searchBox").val();
var dataString = 'searchBox='+ searchBox ;
if(searchBox=='')
{
   $('.success').fadeOut(200).hide();
   $('.error').fadeOut(200).show();
}
else
{
   $.ajax({
   type: "POST",
   url: "ytitest1.php",
   data: dataString,
   success: function(){
   $('.success').fadeIn(200).show();
   $('.error').fadeOut(200).hide();
}
});
}
});
});
于 2012-12-21T14:18:08.680 に答える
0
    <script type="text/javascript" >
    $(function() {
        $("form").submit(function() {
            var searchBox = $("#searchBox").val();
            var dataString = 'searchBox='+ searchBox ;
            if(searchBox=='')
            {
                $('.success').fadeOut(200).hide();
                $('.error').fadeOut(200).show();
            }
            else
            {
                $.ajax({
                    type: "POST",
                    url: "ytitest1.php",
                    data: dataString,
                    success: function(){
                        $('.success').fadeIn(200).show();
                        $('.error').fadeOut(200).hide();
                    }
                });
            }
            return false;
        });
    });
     </script>

フォームを自動送信すると、onsubmit イベントがトリガーされます。

于 2012-12-21T14:21:22.707 に答える
0

これはあなたが必要とするものであり、参照用にコード全体を含めました。

この例では、フォーム自体が ajax 呼び出しにバインドされており、それが呼び出されると、フォーム アクションは何もせず、jquery のみを処理します。自動呼び出しまたは手動呼び出しで動作します。

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    </head>
    <body>
        <form id="myform" name="myform" action="#NULL" method="POST">
            <input type="text" name="myname">
            <input type="submit">
        </form>

        <script>
            $(document).ready(function() {
               setTimeout(function() {
                   $('#myform').submit();
               }, 1000);
               $('#myform').submit(function(e) {
                  e.preventDefault();
                  window.alert('Do work here.'); 
               }); 
            });
        </script>
    </body>
</html>

jQuery .submit() ハンドラーに関するドキュメントは次のとおりです: http://api.jquery.com/submit/ .preventDefault() に関する情報も含まれています。

于 2012-12-21T14:24:39.497 に答える