Подтвердить что ты не робот

Всплывающее окно Chrome Заполните это поле

С моим клиентом связался я, говоря, что пользователи жалуются на то, что некоторые поля теперь показывают всплывающую подсказку с сообщением "Пожалуйста, заполните это поле". Я не мог поверить, что я слышал... но клиент прав - с использованием последней версии Chrome некоторые поля показывают подсказку браузера с этим сообщением даже рядом с моими валидаторами!

Какая проблема? Что мне не хватает?

Спасибо.

EDIT:

HTML, созданный моим пользовательским элементом управления, выглядит следующим образом:

<input name="tbMontante" type="text" maxlength="8" size="10" tbMontante" class="Montantetextfield" 
    FieldName="Montante" 
    Required="True" 
    AllowDecimalValues="True" 
/>

EDIT:

Мой doctype выглядит следующим образом:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Должен ли мой браузер использовать HTML 5 для его анализа?

4b9b3361

Ответ 2

Используете ли вы атрибут HTML5 required?

Это заставит Chrome 10 отобразить воздушный шар, предлагающий пользователю заполнить поле.

Ответ 3

Поместите novalidate="novalidate" в тег <form>.

<form novalidate="novalidate">
...
</form>

В XHTML запрет атрибутов запрещен, а новальдат атрибут должен быть определен как <form novalidate="novalidate">.

http://www.w3schools.com/tags/att_form_novalidate.asp

Ответ 4

Чтобы остановить всплывающее/всплывающее окно Html5 в браузере Web-kit, используйте следующий CSS

::-webkit-validation-bubble-message { display: none; }

Ответ 5

Как я уже говорил в вашем другом вопросе:

Проблема с этим фактом заключается в том, что вы изобрели свои собственные нестандартные атрибуты (которые вам не должны были делать в первую очередь), а теперь новые стандартизованные атрибуты (или атрибуты в процессе стандартизации) сталкиваясь с ними.

Решение proper - полностью удалить ваши изобретенные атрибуты и заменить их на что-то разумное, например, классы (class="Montantetextfield fieldname-Montante required allow-decimal-values"), или сохранить их в JavaScript:

var validationData = {
  "Montante": {fieldname: "Montante", required: true, allowDecimalValues: true}
}

Если правильное решение не является жизнеспособным, вам придется переименовать его. В этом случае вы должны использовать префикс data-... потому что он зарезервирован для HTML5 для таких целей, и он с меньшей вероятностью столкнется с чем-то - но он все еще может, поэтому вы должны серьезно рассмотреть первое решение - даже если оно больше работы для изменения.

Ответ 6

Вам нужно добавить атрибут "formnovalidate" в элемент управления, который запускает проверку браузера, например:

<input type="image" id="fblogin" formnovalidate src="/images/facebook_connect.png">

Ответ 7

Если у вас есть html-форма, содержащая одно или несколько полей с "обязательными" атрибутами, Chrome (в последних версиях) будет проверять эти поля перед отправкой формы и, если они не заполнены, некоторые подсказки будут показаны пользователям чтобы помочь им получить представленную форму (Т.е. "пожалуйста, заполните это поле" ).

Чтобы избежать этой встроенной проверки браузера в формах, вы можете использовать атрибут "Новвалифицировать" в теге формы. Эта форма не будет проверена браузером:

<form id="form-id" novalidate>

    <input id="input-id" type="text" required>

    <input id="submit-button" type="submit">

</form>

Ответ 8

В Chrome (v.56 это то, что я использую, но я AFAIK это применимо в целом) вы можете установить title="" (одно пробел), и текст автоматического заголовка будет переопределен и ничего не отображается. (Если вы попытаетесь сделать его просто пустой строкой, он будет обрабатывать его, как если бы он не был установлен, и добавить этот текст автоматической подсказки, который вы получали).

Я не тестировал это в других браузерах, потому что нашел его, создав расширение Google Chrome. Я уверен, что когда я переношу вещи в другие браузеры, я посмотрю, работает ли в них (даже если это необходимо).

Ответ 9

Эй, мы просто сделали глобальную find-replace, изменив Required = " на jRequired =" . Затем вы просто изменяете его в коде jquery (jquery_helper.js → Function ValidateControls). Теперь наша проверка продолжается по-прежнему, и Chrome оставляет нас в покое!:)