jQuery:触发单击或聚焦输入字段

10

我有一个页面,其中有多个看起来像下面示例的div。每个div包含一个字段、一个隐藏字段和一个按钮。

如何实现点击按钮时触发(可见的)输入字段?我需要触发单击或焦点,因为两者都会触发相同的函数。

每个相关按钮都有 class="triggerBtn",相应的输入字段具有class="inputField"

示例div:

<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>

$(".triggerBtn").click(function(e){ myFunction(); }); $(".inputField").focus(function(e){ myFunction(); }); - TCHdvlp
5个回答

18

我猜你想要:

$(".triggerBtn").click(function () {
    $(this).closest('div').find('.inputField').focus();
});

1
你猜... 就像我们所有人一样。 只要这个问题不清楚,我们就无法帮助他/她。 - TCHdvlp
1
你猜对了! :) 感谢您的快速回复,很抱歉我表达不清楚。 - user2571510

6

添加OnClick="function()" 查看 如果您需要使用jQuery手动触发它,可以这样做

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

这里也可以看看


1
$(".triggerBtn").on("click",function(e){
      $(this).closest("div").find(".inputField").click();
     //or $(this).closest("div").find(".inputField").focus();
});

0
$(".triggerBtn").parent().children("input[type:text]").first().focus()

5
“input[type:text]”不应该改成“input[type='text']”吗? - Adam Merrifield

-1

更新的 Jsfiddle:http://jsfiddle.net/ZmL4y/3/

$(document).on("click",".triggerBtn", function() { 
    var inputField =  $(this).closest('div').find('.inputField');
    if($(inputField).is(":visible"))
    {
       $(inputField ).focus();
    }
});

你如何聚焦一个元素数组? - TCHdvlp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接