2013-11-27 86 views
0

試圖選擇之前選擇的TR內的輸入,並添加焦點它內部的輸入。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

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

+0

我試過了,根據說明我的問題,除非你使用雙引號來代替單引號。我想這樣的說法就在剛纔,但仍沒有運氣。 –

+0

@ K'shin是假設使用find而不是過濾 –

+0

.find的伎倆!謝謝! –