2

ユーザーが検索したときにフォームを自動送信するこのコードがありますが、ダーティなためもう使用したくありません。MooTools でこれを実現するにはどうすればよいでしょうか?

ありがとうございました

<script type="text/javascript">
function autosubmit() {
    setTimeout("document.search_form.submit()", 1000);
}
</script>

<input type='text' class='home_signin_field' id='search' name='user' size='30' onchange="autosubmit()">

そのフィールドに入力すると結果のリストがドロップダウンする autosuggest スクリプトがあります。結果がクリックされると、テキストがフィールドに自動挿入されます。これが、面倒なメソッドの理由です。オートコンプリート スクリプトは、フォームを自動的に送信しません。

これが AutoSuggest スクリプトです。

<script type="text/javascript">
  <!--
    window.addEvent('domready', function(){
      var options = {
        script:"results.php?task=suggest_user&limit=3&",
      varname:"input",
      json:true,
      shownoresults:false,
      maxresults:5,
      multisuggest:false,
      callback: function (obj) {
      }
    };
    var as_json = new bsn.AutoSuggest('search', options);
  }
);
  //-->
</script>

入力フィールドに単純に追加できますonchange="$('search_form').submit(); return false;"が、リダイレクトが速すぎてフィールド内の全文が保持されないため、送信後に 2 文字がキャッチされます (結果が壊れます)。

4

1 に答える 1

1

あなたがhtml<input>の中にある場合は、これを使用できます:<form>

document.id('search').addEvent('change',function(){   
    this.form.submit();
});

そうでない場合は、フォームを直接呼び出して を使用できます.submit()

それでも機能しない場合は、「autosuggest スクリプト」がchange入力フィールドでイベントを発生させていない可能性があります#search。その場合、#search入力の値が設定された後に autosuggest スクリプトにこれを追加できます: document.id('search').fireEvent('change');.

役立つ場合は、このデモを確認してください。

于 2013-10-03T06:59:35.213 に答える