Нажав на <label>в мобильном сафари - PullRequest
32 голосов
/ 09 сентября 2011

Нажатие на <label> не связывает автофокус в Mobile Safari, но если определена пустая функция в качестве обработчика кликов как это

document.getElementById("test_label").onclick = function () {};

решает проблему.

Это полный исходный код.

<body>
    <input type="checkbox" id="test" name="test">
    <label for="test" id="test_label">This is the label</label>
    <script>
      document.getElementById("test_label").onclick = function () {};
    </script>
</body>

Вы знаете, почему это работает?

Ответы [ 11 ]

0 голосов
/ 31 марта 2012

Если атрибут onclick уже существует, его не следует переопределять, и в моем тесте он работал (атрибут onclick) и также устанавливал флажок.так что мое решение:

<script type="text/javascript">
    var labels = document.getElementsByTagName("LABEL");
    var labels_l = labels.length;
    for(var l = 0; l < labels_l; l++){
        if(labels[l].hasAttribute("for") && (!labels[l].hasAttribute("onclick"))){
            labels[l].onclick = function () {};
        }
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...