0

以下は、私が達成しようとしているコードです。ユーザーが送信ボタンをクリックすると、JavaScript関数は、ページをロードせずにid = 'contact_form'のフォームのテキストフィールドですべての値をnullに設定します。私がやろうとしていた機能を実現するために、次のコードを変更する方法を教えてください。ありがとう!!

<script type='text/javascript'>
    $(document).ready(function(){
        $('#love').click(function(e) {
            document.contact_form.name.value = '';
            alert('aloha!!');
            //stop the form from being submitted (not working fine)
            e.preventDefault();
        }
    }
</script>
<form name='abc' action='' id='abc' >
    <input type="submit" id='love' />
</form> 

次の機能も試しましたが、正常に機能しましたが、ページの読み込みを妨げていません

<script type='text/javascript'>
    function js(){
        document.contact_form.name.value = '';
        //stop the form from being submitted (NOT WORKING!!)
        preventDefault();
    }
    }
</script>
4

5 に答える 5

1

タグを試しonsubmit="return false;"てもform、フォームは送信されません。残念ながら、提出されることはありません。AJAX 経由で送信する予定がない場合を除き、次のようにonsubmitイベントを変更する必要があります。

<form onsubmit="return callFunction()">

function callFunction() {
    if(condition)
        return true;
    else
        return false;
}
于 2012-04-27T10:51:38.170 に答える
1
$("#abc").submit( function() {
  // do everything you want.
   return false; //will prevent the reload.
});
于 2012-04-27T10:51:41.943 に答える
0

フォームは、送信ボタンをクリックするだけでなく、さまざまな方法で送信できます。実際にイベントを監視し、 (送信をトリガーする可能性のあるクリック イベントではなく) でsubmitキャンセルする必要があります。preventDefault@ user1359163 の回答を参照してください。

しかし、あなたの問題は次のようです document.contact_form.name.value。ドキュメント オブジェクトにはプロパティがないcontact_formため、エラーが発生します。preventDefault は実行されず、フォームが送信され、エラーは表示されません。デバッガーを「エラー時に停止」に設定してください!

のようなものが欲しいかもしれませんdocument.forms["contact"]が、私はあなたの HTML を知りません。入力要素の id セレクターを選択することをお勧めします。

于 2012-04-27T11:14:19.393 に答える
0

フォームの送信時に関数を実行するには、次のようにする必要があります。

<form onsubmit="return validate();">
your form here
</form>

次に、「validate()」と呼ばれる関数 (または任意の名前) でチェックを行うことができます。

フォームの送信が許可されている場合は validate() 関数が true を返し、ページの送信が許可されていない場合は false を返すようにしてください。

また、入力要素に ID と名前を付けて、それらに簡単にアクセスできるようにします。

于 2012-04-27T10:51:15.340 に答える
0

次のような HTML があるとします。

<form>
<input type="text" id="text" />
<input type="submit" id='submit' value="clear above field without reloading" />
</form>

そして、ユーザーがjQueryを使用してリロードせずに送信したときにテキストフィールドの値をクリアしたい場合は、次のスクリプトが解決策になります:

$(function(){
$('#submit').click(function(){
    $('#text').value('');
})
});
于 2012-04-27T11:00:13.907 に答える