Есть ли W3C действительный способ отключить автозаполнение в форме HTML?

Вам нужно передать указатель на указатель, если вы хотите это сделать.

void barPush(BarList ** list,Bar * bar)
{
    if (list == NULL) return; // need to pass in the pointer to your pointer to your list.

    // if there is no move to add, then we are done
    if (bar == NULL) return;

    // allocate space for the new node
    BarList * newNode = malloc(sizeof(BarList));

    // assign the right values
    newNode->val = bar;
    newNode->nextBar = *list;

    // and set the contents of the pointer to the pointer to the head of the list 
    // (ie: the pointer the the head of the list) to the new node.
    *list = newNode; 
}

Затем используйте его следующим образом:

BarList * l;

l = EMPTY_LIST;
barPush(&l,&b1); // b1 and b2 are just Bar's
barPush(&l,&b2);

Джонатан Леффлер предложил вернуться новый глава списка в комментариях:

BarList *barPush(BarList *list,Bar *bar)
{
    // if there is no move to add, then we are done - return unmodified list.
    if (bar == NULL) return list;  

    // allocate space for the new node
    BarList * newNode = malloc(sizeof(BarList));

    // assign the right values
    newNode->val = bar;
    newNode->nextBar = list;

    // return the new head of the list.
    return newNode; 
}

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

BarList * l;

l = EMPTY_LIST;
l = barPush(l,&b1); // b1 and b2 are just Bar's
l = barPush(l,&b2);
418
задан Kos 12 July 2018 в 18:58
поделиться

9 ответов

Здесь хорошая статья от MDC, который объясняет проблемы (и решения) для формирования автозавершения. Microsoft опубликовала что-то подобное здесь , также.

Честно говоря, если это - что-то важное для Ваших пользователей, 'повреждение' стандартов таким образом кажется соответствующим. Например, Amazon использует атрибут 'автоматического заполнения' вполне немного, и это, кажется, работает хорошо.

, Если Вы хотите удалить предупреждение полностью, можно использовать JavaScript для применения атрибута к браузерам, которые поддерживают его (IE, и Firefox важные браузеры), использование someForm.setAttribute( "autocomplete", "off" ); someFormElm.setAttribute( "autocomplete", "off" );

Наконец, если сайт использует HTTPS, IE автоматически выключает автозавершение (также, как и некоторые другие браузеры, насколько я знаю).

Обновление

Как этот ответ все еще получает довольно много upvotes, я просто хотел указать, что в HTML5, можно использовать атрибут 'автоматического заполнения' на элементе формы. Посмотрите документация на W3C для него.

418
ответ дан Community 13 July 2018 в 04:58
поделиться
  • 1
    СПАСИБО Mohammed Вы определенно спросили мой ответ. Можно сделать блог grupping всеми во всех возможных тестах. You' действительно большое ре и государство. Взгляните на мой веб-сайт www.albanx.com, возможно, Вы находите что-то полезным (посмотрите дома и страница программирования). Еще раз спасибо – albanx 30 June 2011 в 10:50

HTML 4 : Никакой

HTML 5 : Да

атрибут автоматического заполнения является перечислимым атрибутом. Атрибут имеет два состояния. на ключевое слово отображается на на состоянии, и прочь , ключевое слово отображается на от состояния. Атрибут может также быть опущен. Значение по умолчанию отсутствующего значения на [1 111] состояние. прочь состояние указывает, что по умолчанию, средствам управления формой в форме установят их имя поля автозаливки на [1 113] прочь ; на состоянии указывает, что по умолчанию, средства управления формой в форме будут иметь их autofill набор имени поля к "на".

Ссылка: W3

56
ответ дан driconmax 13 July 2018 в 04:58
поделиться

Как насчет того, чтобы установить его с JavaScript?

var e = document.getElementById('cardNumber');
e.autocomplete = 'off'; // Maybe should be false

Это не прекрасно, но Ваш HTML будет допустим.

23
ответ дан Peter Mortensen 13 July 2018 в 04:58
поделиться
  • 1
    Относительно предела стека я думаю, что ответ был в отношении того, что это означало для хвостовой рекурсии. Несомненно, языки имеют предел стека, но хвостовая рекурсия оптимизирована в нерекурсивный переход, таким образом, он shouldn' t исчерпывают стек. Так в сущности факт, что это упомянуло бы предел глубине рекурсии, не подразумевает хвостовой рекурсии. – RonaldBarzell 30 November 2012 в 14:02

Нет, хорошая статья находится здесь в Mozila Wiki.

я продолжил бы использовать недопустимое attribute. Я думаю, что это - то, где прагматизм должен выиграть проверку.

31
ответ дан atiquratik 13 July 2018 в 04:58
поделиться
  • 1
    @user, В то время как верный, можно было бы ожидать, что особый случай хвостовой рекурсии будет указан в вышеупомянутом абзаце. С тех пор it' s не, it' s безопасный предположить, что PHP не имеет никакого особого случая для него. – deceze♦ 30 November 2012 в 14:06

Нет, но автоматическое заполнение браузера часто инициировано полем, имеющим тот же name атрибут как поля, которые были ранее заполнены. Если бы Вы могли бы подстроить умный способ иметь рандомизированное имя поля , автоматическое заполнение не было бы в состоянии вытянуть любые ранее вводимые значения для поля.

, Если необходимо было дать полю ввода имя как" email_<?= randomNumber() ?>" и затем иметь сценарий, который получает этот цикл данных через POST или ПОЛУЧАЕТ переменные, ища что-то соответствующее шаблону" email_[some number]", Вы могли осуществить это, и это будет иметь (практически) гарантируемый успех, независимо от браузера .

32
ответ дан Phantom Watson 13 July 2018 в 04:58
поделиться

Я был бы очень удивлен, предложит ли W3C путь, который работал бы с (X) HTML4. Функция автоматического заполнения совершенно на базе браузера, и была представлена в течение прошлых лет (много позже того, как стандарт HTML4 был записан).

не был бы удивлен, будет ли HTML5 иметь один, все же.

Редактирование: , Поскольку я думал, , HTML5 делает , имеют тот функция. Для определения страницы как HTML5 используйте следующий doctype (т.е.: поместите это как самый первый текст в Вашем исходном коде). Обратите внимание, что не все браузеры поддерживают этот стандарт, как это находится все еще в черновой форме.

<!DOCTYPE html>
63
ответ дан BlaM 13 July 2018 в 04:58
поделиться
  • 1
    Corey - если я хочу, чтобы/home/user/path_file был " Required" для об/мин для выполнения? Я могу сделать его PreReq или Обязательным параметром в моем файле спецификации? То, когда я пробую, потребовало, чтобы это сказало, что файл не там, и это полностью там? – last_shogun 23 April 2012 в 15:59

Не идеальный, но Вы могли изменить идентификатор и название текстового поля каждый раз, когда Вы представляете его - необходимо было бы отследить его сторона сервера также, таким образом, Вы могли вывести данные.

Не уверенный, если это будет работать или нет, была просто мысль.

3
ответ дан Kieron 13 July 2018 в 04:58
поделиться
  • 1
    Спасибо +1 снова. Если бы можно помочь мне найти право AudioHardware.cpp для Nexus One (особенно CyanogenMod 6), это очень ценилось бы. – ateiob 19 August 2011 в 13:10

Автозаполнение отключено

<script type="text/javascript">
    /* <![CDATA[ */
    document.write('<input type="text" id="cardNumber" name="cardNumber" autocom'+'plete="off"/>');
    /* ]]> */ 
</script>
-5
ответ дан 22 November 2019 в 23:22
поделиться

Если вы используете jQuery, вы можете сделать что-то вроде этого:

$(document).ready(function(){$("input.autocompleteOff").attr("autocomplete","off");});

и использовать класс autocompleteOff там, где хотите:

<input type="text" name="fieldName" id="fieldId" class="firstCSSClass otherCSSClass autocompleteOff" />

Если вы хотите, чтобы ВСЕ вводимые данные были autocomplete = off , вы можете просто использовать это:

$(document).ready(function(){$("input").attr("autocomplete","off");});
11
ответ дан 22 November 2019 в 23:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: