Jquery сосредоточиться на текстовом поле при нажатии метки - PullRequest
2 голосов
/ 05 мая 2011

Можно ли как-то сфокусироваться на текстовом поле?

т.е. Имя пользователя в сценарии ниже, когда щелкается метка имени пользователя?

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

2 голосов
/ 05 мая 2011

То, что вы пытаетесь сделать, просто не сработает. Невозможно поднять клавиатуру iPad без прикосновения пользователя к элементу ввода текста. Это может быть сделано специально, так как Apple не хочет, чтобы клавиатура становилась злонамеренной / навязчивой, и продолжает появляться по требованию.

Одним из обходных путей может быть наведение клика пользователя на текстовое поле и его стилизация, чтобы они знали, как нажимать на него.

0 голосов
/ 17 июля 2013

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();
            }
        });
    });
}
0 голосов
/ 05 мая 2011
$("label").click(function(e){  
    if($(this).attr("for") == "UserName")  
    {  
        $("#UserName").focus()  
    }  
})
0 голосов
/ 05 мая 2011

Использование JQuery :

$(document).ready(function() {
  $('#mylabelid').click(function() {
     $('#mytextboxid').focus();
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...