3

最初に言いたいのは、私は javascript と jQuery に非常に慣れていないということです。それは非常にばかげた単純な問題だと思います。これには多くの質問があることを認識しており、それらすべてを試しました。私は自分の問題を解決できないようですが。

入力フィールドと送信ボタンがあります。送信をクリックすると、入力ファイルの内容をデータベースに保存し、ページ上のコンテンツと同じページにそのまま残りたいと思います。

私のJavascriptコードは次のとおりです。

 <script type="text/javascript">
        $(document).ready(function()
        {
            $('#submit').submit(function(e)
            {

                e.preventDefault();
                var msg = $('#uname').val();
                $.post("c_test/test_submit", {uname: msg}, function(r) {
                   console.log(r);
                });
            });
        });
    </script>

そして、私のhtmlコードは次のとおりです(私はcodeigniterを使用しています):

$this->load->helper('form');
echo form_open();
$data =array ('name'=>'uname','id'=>'uname');
echo form_input($data) . '<br />';
$data=array('name'=>'submit','id'=>'submit','value'=>'Submit');
echo form_submit($data);
echo form_close();

誰かが私の愚かさを指摘してくれたら、とてもありがたいです。ありがとう!

4

4 に答える 4

4

あなたが使用している

$('#submit').submit(function(e){ ... });

この場合submitは であり、button/inputidようなイベントはありません。代わりに、のようなイベントsubmitを使用できます。click

$('#submit').click(function(e){ ... });

また

$('#submit').on('click', function(e){ ... });

それ以外の場合は、次の行を変更できます

echo form_open();

echo form_open('c_test/test_submit', array('id' => 'myform'));

そして代わりに

$('#submit').click(function(e){ ... });

あなたが使用することができます

$('#myform').submit(function(e){
    e.preventDefault();
    var msg = $('#uname').val();
    var url=$(this).attr('action');
    $.post(url, {uname: msg}, function(r) {
        console.log(r);
    });
});

また

$('#myform').on('submit', function(e){
    e.preventDefault();
    var msg = $('#uname').val();
    var url=$(this).attr('action');
    $.post(url, {uname: msg}, function(r) {
        console.log(r);
    });
});
于 2012-10-09T21:51:29.363 に答える
1

id「送信」の要素がフォームの送信ボタンのようです - <input type="submit">。ただし、submitイベントは送信ボタンではなくフォームによって発生するため、バインドされたイベント ハンドラーは発生しません。

「送信」をフォームに移動するか、イベント ハンドラーidをバインドするときにセレクターを変更します。submit

$('form').submit(function(e) {
    // handle submit event from the form
});
于 2012-10-09T21:25:51.797 に答える
1

次のようにする必要があります。

<?php
$this->load->helper('form');

echo form_open('', array( 'id' => 'myform'));
..

と:

 $('#myform').submit(function(e)
     {
            e.preventDefault();
            var msg = $('#uname').val();
            $.post("c_test/test_submit", {uname: msg}, function(r) {
               console.log(r);
            });

            return false;
     });

submit イベントは、フォーム ボタンではなく常にフォームに送信されます。

于 2012-10-09T21:26:33.797 に答える
0

おそらくこのように:

$data=array('name'=>'submit','id'=>'submit','value'=>'Submit','onsubmit'=>'return false;');

これにより、フォームの投稿が停止し、ページの更新が停止します。ただし、ajax 経由でフォームを送信する必要があります。

于 2012-10-09T21:23:14.460 に答える