jquery选择所选内的输入

时间:2013-11-27 00:33:57

标签: jquery

尝试选择之前选择的tr内的输入并将焦点添加到其中。

这是HTML:

<div id="login" style="position:relative; display:none; top:0px; left:0px; right:0px; bottom:0px; text-align:center; vertical-align:middle; z-index:10;" class="trwhole">
<table width="100%" height="100%">
    <tr width="100%" height="100%">
        <td width="100%" height="100%" style="vertical-align:middle; text-align:center;">
            <img src="images/MemorizeItWhite.png" z-index="10000" style="width:290px;">
            <table align="center" class="w290">
                <tr>
                    <td>
                        <div id="lerror" class="alert"></div>
                    </td>
                </tr>
                <tr>
                    <td align="left">Username:
                        <br>
                        <input autocorrect="off" autocapitalize="off" type="text" placeholder="username" id="username" style="" class="ui-corner-all w290">
                    </td>
                </tr>
                <tr>
                    <td align="left">Password:
                        <br>
                        <input type="password" placeholder="password" id="password" style="" class="ui-corner-all w290" onkeypress="if (event.keyCode==13){login();}">
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="button" id="loginBt" onclick="login();" value="Log In" class="submit" style="width:85px;">
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
</div>

到目前为止,这是选择器:

$('#login tr:has(input[placeholder]), #signup2 tr:has(input[placeholder])').on("touchstart", 
function (evt) { $(evt.target).filter("input").focus(); }
);

不幸的是     $(evt.target).filter("input").focus(); 没有这样做。

我也试过

$(this).filter('input').focus();

但是也没有把重点放在输入上。

欢迎任何想法。

谢谢!

1 个答案:

答案 0 :(得分:1)

evt.target指的是发起事件的元素,它可能不是tr元素。您可以在点击处理程序中使用this来引用tr元素

$('#login tr:has(input[placeholder]), #signup2 tr:has(input[placeholder])').on("touchstart", function (evt) {
    $(this).find("input").focus();
    evt.stopPropagation();
});

演示:Fiddle