1
<form accept-charset="UTF-8" action="/twitts" class="dialog   " id="twitt-form" method="post" title="Dialog" selected="true">
    <div style="margin:0;padding:0;display:inline">
        <input name="utf8" type="hidden" value="✓">
        <input name="authenticity_token" type="hidden" value="BkLNJsJfbEzfQrCTDWHW4OvvOh0l2pLPxxEJ/bGt2IY="></div>

        <input id="anonymous_id" name="anonymous[id]" type="hidden" value="22">
        <fieldset>

            <h1>Отправить сообщение</h1>
            <a class="button leftButton" type="cancel">Отмена</a>
            <a id="submit-twitt" class="button blueButton">Отправить</a>
            <!-- <input class="button blueButton" id="submit-twitt" name="commit" type="submit" value="Отправить" /> -->

            <input id="twitt-text" name="twitt[text]" size="30" type="text">

        </fieldset>
    <div class="spinner"></div>      
</form>

私が電話するとき

$('#twitt-form').submit();

デバッガーまたはクリックイベントハンドラー内では、何も起こりませんでした。そして、フォームに .submit ハンドラーを設定しても

    $('#twitt-form').submit(function() {
        $('#twitt-text').val('');
        $('#twitt-form').attr('selected', false);
        return false;
    });

ハンドラーは機能しますが、フォームはデータを送信しません。なんで ?

その他:フォームフィールドフォームでEnterを押す#twitt-textと、送信がうまくいき、.submitハンドラーも機能します。

4

3 に答える 3

0
 $('#twitt-form').submit(function() {
        $('#twitt-text').val(''); <---  this it will make form value  empty 
        $('#twitt-form').attr('selected', false);
        return false;             
    });
于 2012-11-20T07:28:30.007 に答える
0

条件なしで return false を使用している理由。

return false; 

デフォルトのフォームアクションを防止することです。そのため、フォームが送信されていません。

于 2012-11-20T07:33:39.697 に答える
0

このコードには 3 つの問題があり、そのうちの 2 つが現在取り上げられています。

  1. 送信関数内では、最初の行で入力テキスト フィールドがクリアされるため、送信しても何も送信されません。
  2. 2 つ目は、フォーム自体であるため、属性#twitt-formがありません。selected
  3. を使用すると、フォームの送信がキャンセルされますreturn false;

AJAX でフォームを送信して、ページがどこにも移動しないようにしようとしていた場合、これができることの例です。

$('#twitt-form').submit(function(e) {

    $.ajax({
        url: $(this).attr('action'),
        data: $(this).serialize(),
        type: $(this).attr('method'),
        success: function(dataFromTheServer) {
            // do whatever
        }
    });

    $('#twitt-text').val('');

    e.preventDefault();
    return false;
});

しかし、それ以外は、あなたがここで何をしようとしているのかわかりません。

于 2012-11-20T08:12:57.523 に答える