Вход

Просмотр полной версии : Програмное нажатие на кнопку


djonA
25.11.2012, 03:21
Подскажите, есть 2 кода, которые отлично выполняются и работаю, но нужно что бы в каждом из кодов, после выполнения фунции, еще очищалась input форма.

Вот 2 кода:

$(".ac_results li").live("mousedown", function(){
window.location=$(this).find("a").attr("href"); return false;
});

$("#searchstring").keyup(function(e) {
if (e.which == 13) { var link = $(this).val().match(/href='([^']+)/);
location.href =link[1]; };
});


Думал как вариант создать кнопку: <input id="myButton" name="myButton" type="button" value="Reset Form" onClick="this.form.reset()" />
спрятать ее и потом в каждом конкретном случае програмно нажать на нее.

Но не получается, или может Вы подскажите еще какойто более простой вариант???

ruslan_mart
25.11.2012, 05:58
Может document.getElementById('myButton').click();

djonA
25.11.2012, 11:46
Может document.getElementById('myButton').click();

это куда добавить? прямо в мои функции?

что бы было прияерно так:
$("#searchstring").keyup(function(e) {
if (e.which == 13) { var link = $(this).val().match(/href='([^']+)/);
location.href =link[1];
document.getElementById('myButton').click(); };
});

9xakep
25.11.2012, 12:16
<input type='button' id='but' onclick='func()'>

<script>
function func() { alert('do') }
document.getElementById('but').click()
</script>

djonA
25.11.2012, 12:19
Да это я понял, только мне надо что бы оно срабатывала после выполнения моего скрипта, то есть после вот этого: $("#searchstring").keyup(function(e) {
if (e.which == 13) { var link = $(this).val().match(/href='([^']+)/);
location.href =link[1]; };
});

сразу срабатывало вот это: function func() { alert('do') }
document.getElementById('but').click()

Hoshinokoe
25.11.2012, 12:24
Думал как вариант создать кнопку: <input id="myButton" name="myButton" type="button" value="Reset Form" onClick="this.form.reset()" />
спрятать ее и потом в каждом конкретном случае програмно нажать на нее.
Но не получается, или может Вы подскажите еще какойто более простой вариант???

Зачем создавать дополнительную кнопку, если в каждом из блоков можно сразу добавить код очистки формы ???

9xakep
25.11.2012, 12:27
djonA,
я правильно понял, что ты перезагружаешь страницу, а потом хочешь, что бы твоя функция там работала? О_о

djonA
25.11.2012, 12:34
нет я хочу что бы после срабатывания функции, очищалось текстовое поле.

Так как там вставляется текст, а мне нужно что бы оно оставалось пустым

Hoshinokoe
25.11.2012, 13:20
djonA,

Добавь в конец функции
$('#input').val('');

djonA
25.11.2012, 16:55
тут отлично срабатывает: $("#searchstring").keyup(function(e) {
if (e.which == 13) { var link = $(this).val().match(/href='([^']+)/);
location.href =link[1];$('#searchstring').val(''); };
});

а вот тут нет, не очищает форму после выполнения функции:
$(".ac_results li").live("mousedown", function(){
window.location=$(this).find("a").attr("href"); $('#searchstring').val('');
});

Hoshinokoe
25.11.2012, 20:59
djonA,

Исправь во втором случае:
$(".ac_results li").live("mousedown", function(){
$('#searchstring').val('');
window.location=$(this).find("a").attr("href");
});

djonA
25.11.2012, 21:58
попробовал, не очищает строку.

Может можно еще какие то варианты использовать???

bes
25.11.2012, 23:07
https://developer.mozilla.org/en-US/docs/DOM/form.reset

djonA
25.11.2012, 23:32
https://developer.mozilla.org/en-US/docs/DOM/form.reset

Да читал, но мне нужно именно очистить текстовое поле после клика мышкой на ссылку.

То есть добавить либо reset в конце функции, либо вывод пустой строчки в функции.

Но это должно происходить именно после клика на ссылку.

То есть вопрос как в этот код добавить очистку формы от текста:
$(".ac_results li").live("mousedown", function(){
window.location=$(this).find("a").attr("href");
});

bes
25.11.2012, 23:36
тестовый пример с возможностью запуска [html run]

djonA
25.11.2012, 23:37
Это сложно... если прямо на сайте покажу так пойдет?

bes
25.11.2012, 23:39
пойдёт

djonA
25.11.2012, 23:44
Сайт в лс
если в поиске начать писать что-то латинскими буквами, скажем WLX,
то предложатся варианты, если мы там выберем любой вариант и нажмем на него кнопкой мышки, то он его вначале вставит в текстовое поле, а потом сделает переход по ссылке.

Мне надо что бы он не вставлял его в текстовое поле, то есть оставлял ее пустой, при нажатии мышкой на какой то вариант.

Ну или хотя бы очищал ее после всех этих манипуляций, можно пример посмотреть если на один из вариантов нажать кнопкой enter.
Оно вначале вставится потом сразу очиститься а потом уже произойдет переход по ссылке.

bes
26.11.2012, 00:49
очевидно, стоит использовать объекты с lavel и value вместо массива ссылок, либо назначать обработчики на события select, close или change
link (http://jquery.page2page.ru/index.php5/%D0%90%D0%B2%D1%82%D0%BE%D0%B7%D0%B0%D0%BF%D0%BE%D 0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5)