【问题标题】:How to convert function to MooTools?如何将函数转换为 MooTools?
【发布时间】:2013-10-03 05:51:33
【问题描述】:

我们有这个自动提交表单的代码,当用户搜索但我们不想再使用它时,我们如何在 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 脚本:

<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 个字符(破坏结果)。

【问题讨论】:

  • 您不能简单地远程输入输入中的onchange="autosubmit()" 以防止提交吗?目前尚不清楚自动建议和提交实际上是如何相关的。
  • 你搞定了吗?

标签: javascript forms submit mootools


【解决方案1】:

如果您的 &lt;input&gt; 在 html 中的 &lt;form&gt; 内,您可以使用:

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

如果没有,您可以直接调用表单并使用.submit()

如果它仍然不起作用,可能是因为您的“自动建议脚本”没有在输入字段 #search 中触发 change 事件。在这种情况下,您可以在设置 #search 输入的值后将其添加到自动建议脚本中:document.id('search').fireEvent('change');

如果有帮助,请查看demo

【讨论】:

  • 优秀的演示,很好,但是我仍然对我们网站上的示例有问题。我已经更新了第一篇文章。如何将您提供的解决方案添加到我发布的更新代码中?
  • @CodyTapping,您使用哪个 AutoSuggest?我可以检查它并尝试弄清楚它是如何工作的。
猜你喜欢
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多