Jquery专注于标签点击上的文本框

时间:2011-05-05 06:36:20

标签: jquery ipad

有什么办法可以专注于文本框吗?

即。点击用户名标签时,下方情况的用户名是什么?

<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();
            });

4 个答案:

答案 0 :(得分:2)

你想做的事情根本行不通。如果没有用户触摸文本输入元素,就无法启动iPad键盘。这可能是设计上的,因为Apple不希望键盘变得恶意/侵入,并且不断按需弹出。

一种解决方法可能是让用户的点击目标成为文本字段,并将其设置为样式,以便他们知道按下它。

答案 1 :(得分:0)

使用JQuery

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

答案 2 :(得分:0)

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

答案 3 :(得分: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();
            }
        });
    });
}