2013-10-03 2 views
2

У нас есть этот код, который автоматически отправляет нашу форму, когда пользователи ищут, но мы не хотим использовать ее больше как ее грязную, как мы можем это сделать в MooTools?Как преобразовать функцию в 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()"> 

У нас есть сценарий автозаполнения, что падает вниз со списком результатов при вводе текста в этой области, когда в результате щелчка, она автоматически вставляет текст в поле, что является причиной наш беспорядочный метод. Сценарий автозаполнения не автоматически отправляет форму.

Это наше автозаполнение сценарий:

<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 символов пойманы после представления (разбивающихся результаты).

+0

Не можете ли вы просто удалить 'onchange =" autosubmit() "' на своем входе для предотвращения отправки? Неясно, как на самом деле связаны аутсоргирование и подчинение. – artlung

+0

Вы получили эту работу? – Sergio

ответ

1

Если <input> находится внутри <form> в HTML, вы можете использовать это:

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

Если нет, то вы можете вызвать форму непосредственно и использовать .submit().

Если он по-прежнему не работает, возможно, это связано с тем, что ваш сценарий autosuggest не запускает событие change в поле ввода #search. В этом случае вы можете добавить это в свой сценарий автозагрузки после того, как было установлено значение ввода #search: document.id('search').fireEvent('change');.

Проверьте это demo, если это поможет.

+0

Отличная демонстрация и хорошая работа, однако у меня все еще возникают проблемы с примером, работающим на нашем сайте. Я обновил первый пост. Как добавить предоставленное решение к обновленному коду, который я разместил? –

+0

@CodyTapping, в котором вы используете AutoSuggest? Я могу проверить это и попытаться выяснить, как это работает. – Sergio

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