0

在我的页面标题中:

<script>
function formula()
{
    document.forms["inquire"]["search"].value.scrollIntoView();
}
</script>

在我的页面正文中:

<div id="nav">
<form id="inquire" name="inquire" onSubmit="return false;">
Search or inquire here: <input type="text" id="search" name="search" value="<?php search($_GET['search']) ?>" autocomplete="off"/>
<input type="button" name="btnSearch" id="btnSearch" onClick="formula();"/>
</form>
</div>

我想在这里发生的是,当单击btnSearch时,它会激活formula(),从表单中的查询中获取,然后滚动到我称为formula的单独 div 中的值。如果我把document.getElementById(this.form.search.value).scrollIntoView(); 直接进入btnSearch的onClick,但是无论我如何将其设置为函数,它都拒绝工作。这里有谁知道它为什么会这样做,或者我该如何解决?

4

1 回答 1

1

它不起作用,因为您的功能错误:

function formula() {
  document.getElementById(document.forms.inquire.search.value).scrollIntoView();
}

该代码获取搜索字段的值并将其用于“id”查找。检查是否确实有一个“id”,其中输入的值可能是一个好主意:

function formula() {
  var element = document.getElementById(document.forms.inquire.search.value);

  if (element) element.scrollIntoView();
}
于 2013-03-25T16:16:59.737 回答