2013-03-25 4 views
0

В моей страницы голове:функция Javascript не активирует OnClick

<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 щелкают, это активирует формулу(), принимая значение от поиск в форме запрашивает, а затем прокручивается до значения в отдельный div, который я назвал формулой. Это работает, если я положил document.getElementById (this.form.search.value) .scrollIntoView(); непосредственно в onClick для btnSearch, однако он отказывается работать независимо от того, как я настроил его как функцию. Кто-нибудь знает, почему это может быть сделано, или как я могу это исправить?

ответ

1

Это не работает, потому что ваша функция является ошибочным:

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

Этот код получает значение в поле поиска и использует его для «ид» поиска. Это, вероятно, будет хорошей идеей, чтобы проверить, что там на самом деле является «идентификатор» со значением набрано:

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

    if (element) element.scrollIntoView(); 
} 
+0

Вы забыли) скобка –

+0

@netme да спасибо моя клавиатура была смешно в последнее время :-) – Pointy

+0

Thank вы так много заодно! Я использовал то, что вы сказали в начале, и он работает именно так, как мне нужно сейчас. Спасибо! –

Смежные вопросы