jQuery: вызвать щелчок или сфокусировать поле ввода

У меня есть страница с несколькими элементами div, которые выглядят как в примере ниже. Каждый div содержит поле, скрытое поле и кнопку.

Как я могу добиться этого, нажав на кнопку, чтобы сработало (видимое) поле ввода? Мне нужно вызвать либо щелчок, либо фокус, поскольку оба запускают одну и ту же функцию.

Каждая рассматриваемая кнопка имеет class="triggerBtn", а соответствующее поле ввода имеет class="inputField".

Пример раздела:

<div>
    <input type="text" class="inputField" id="field1" name="field1" />
    <input type="hidden" name="field1" />
    <button type="button" class="btn btn-primary triggerBtn">Find</button>
</div>

person user2571510    schedule 17.12.2013    source источник
comment
$(".triggerBtn").click(function(e){ myFunction(); }); и $(".inputField").focus(function(e){ myFunction(); });   -  person TCHdvlp    schedule 17.12.2013


Ответы (4)


Я думаю, вы хотите:

$(".triggerBtn").click(function () {
    $(this).closest('div').find('.inputField').focus();
});
person A. Wolff    schedule 17.12.2013
comment
Вы догадываетесь... Как и все мы. Пока этот вопрос не ясен, мы не можем помочь ему/ей. - person TCHdvlp; 17.12.2013
comment
Ты угадал ! :) Спасибо за быстрый ответ и извините, я не был достаточно ясен. - person user2571510; 17.12.2013

добавить Onclick="function()" см. здесь, если вам нужно запустить его вручную с помощью jquery вы можете к этому

$("#field1").trigger("click");

см. также здесь

person AmOs    schedule 17.12.2013

Обновленный Jsfiddle: http://jsfiddle.net/ZmL4y/3/

$(document).on("click",".triggerBtn", function() { 
    var inputField =  $(this).closest('div').find('.inputField');
    if($(inputField).is(":visible"))
    {
       $(inputField ).focus();
    }
});
person patel.milanb    schedule 17.12.2013
comment
Как вы можете сфокусировать массив элементов? - person TCHdvlp; 17.12.2013

person    schedule
comment
разве input[type:text] не должно быть input[type='text']? - person Adam Merrifield; 17.12.2013