2011-05-05 28 views
2

有沒有什麼方法可以專注於文本框?Jquery專注於標籤上的文本框點擊

單擊用戶名標籤時,用戶名是否在以下方案中?

<tr> 
    <td valign="middle" class="loginText"> 
     <b> 
      <label for="UserName"> 
       UserName:</label></b> 
    </td> 
    <td valign="middle" > 
     <input type="tel" maxlength="6" value="" name="UserName" id="UserName" data-val-required="The User name field is required." 
      data-val="true" /><br /> 
     @Html.ValidationMessageFor(m => m.UserName) 
    </td> 
</tr> 

它適用於Mozilla和IE,但不適用於iPad Safari。基本上,我想iPad的鍵盤彈出當用戶在這種情況下標籤上點擊即用戶名:

這裏是我的jQuery:

$("label[for]").click(function() { 
       var inputid = '#' + $(this).attr('for'); 
       alert(inputid); 
       $(inputid).focus(); 
      }); 
+1

改變輸入類型爲'text',可能是無效的'tel'類型是混淆瀏覽器。感謝nathan – 2011-05-05 06:42:57

回答

1

什麼你試圖做的事情根本行不通。沒有用戶觸摸文本輸入元素,就無法將iPad鍵盤拉起來。這可能是因爲蘋果不希望鍵盤變得惡意/侵入性並隨時按需提供。

一種解決方法可能是讓用戶的點擊目標成爲文本字段,併爲其設置樣式,以便他們知道按下它。

+0

有趣的,謝謝@加里。這解釋了爲什麼它可以在PC上運行,而不是在IPAD上運行。在windows平板上也一樣嗎? – 2011-05-05 10:06:07

+0

我不確定窗戶石板,它可能工作。最好的辦法是讓朋友有一個嘗試它:-) – 2011-05-05 10:50:40

+0

謝謝@加里,你能舉一個例子:「一種解決方法可以使用戶的點擊目標文本字段,並設計它所以他們知道要按壓它。「不確定你的意思。 – 2011-05-05 22:33:25

0

使用JQuery

$(document).ready(function() { 
    $('#mylabelid').click(function() { 
    $('#mytextboxid').focus(); 
    }); 
}); 
+0

,它似乎沒有在iPad上工作。請看我提出的問題。 – 2011-05-05 06:40:46

0
$("label").click(function(e){ 
    if($(this).attr("for") == "UserName") 
    { 
     $("#UserName").focus() 
    } 
}) 
+0

我看了你的更新q現在 – Mayank 2011-05-05 06:43:04

0

http://v4.thewatchmakerproject.com/blog/how-to-fix-the-broken-ipad-form-label-click-issue/

if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/iPad/i)) { 
    $(document).ready(function() { 
     $('label[for]').click(function() { 
      var el = $(this).attr('for'); 
      if ($('#' + el + '[type=radio], #' + el + '[type=checkbox]').attr('selected', !$('#' + el).attr('selected'))) { 
       return; 
      } else { 
       $('#' + el)[0].focus(); 
      } 
     }); 
    }); 
}