0

問題:

ユーザーがキー C または M を押してオプションを選択できるスクリプトがあります。いずれかのキーが押されると、フォームが送信されます。各オプションは 1 回しか送信できないという厳密なルールがあるため、複数回押す人もいます。

質問:

ユーザーが C キーまたは M キーを押した後にフォームを再度送信できないようにするにはどうすればよいですか? 送信後にページが更新されたら、いずれかのキーを押すことができるようにしてください。

PHP / jQuery のコード:

if (in_array($checkstring, $footer))
    {
        echo '
            <script type="text/javascript">
                $(document).ready(function()
                {
                    $(window).keypress(function(e)
                    {
                        if (e.which == 99)
                        {
                            $("input#left").val( 1 );
                            $("form").submit();
                        }
                        else if (e.which == 109)
                        {
                            $("input#right").val( 1 );
                            $("form").submit();
                        }
                    });

                    '.$warning.'
                });
            </script>
        ';
    }
4

3 に答える 3

0
var once = false;
$(window).keypress(function(e){
    if(!once){
        if(e.which == 99 || e.which == 109){
            $("input#"+(e.which == 99)?"left":"right").val( 1 );
            $("form").submit();
            once = true;
        }
    }
});
于 2013-09-16T05:12:28.153 に答える
-2
     $(window).keypress(function(e)
    e.stopPropagation();
 /* here we apply this because when we press

 click then it takes form submit action

 so we prevent all the things when we

 press key as you mention in your code*/
                        {
                            if (e.which == 99)
                            {
                                $("input#left").val( 1 );
                                $("form").submit();
                            }
                            else if (e.which == 109)
                            {
                                $("input#right").val( 1 );
                                $("form").submit();
                            }
                        });

reference [event.stopPropagation()][1]


  [1]: http://api.jquery.com/event.stopPropagation/
于 2013-09-16T04:51:04.310 に答える