запрет кеширования данных формы в FF
Проблема: надо, чтобы при обновлении страницы браузером текстовое поле в форме очищалось. В Chrome и Opera это происходит само собой.
Firefox кеширует введенный текст, при обновлении страницы он остается в поле. Можно как-то через js это запретить? |
autocomlete="off" |
Не работает эта конструкция. Тестируется в FF28.
Код: <form id="add" method="post" action=""> <input type="text" id="order" value=" " autocomlete="off"/> </form> Если в это поле что-то вести, текст там и болтается. Ни обновлением, ни вперед-назад поле не очищается. |
А если поставить на onload форме .reset()?
|
инициализируйте начальные параметры формы своим скриптом
var order = document.getElementById("order"); if (order) order.value = null; |
Да. Проблема частично решилась следующим образом:
<body onLoad="document.all.addcategory.reset()"> <form id="addcategory" method="post" action=""> <input id="order" type="text" value=""/> </form> </body> Не знаю, насколько все это корректно, но теперь FF при обновлении страницы очищает форму. Однако. При переходе по кнопке вперед-назад не очищает. Какие будут предложения? |
****
инициализируйте начальные параметры формы своим скриптом var order = document.getElementById("order"); if (order) order.value = null; **** Я примерно так пробовал: onKeyPress= if ((event.keyCode<48)||(event.keyCode>57)){ event.returnValue=false; document.getElementById("order").value=" "; } Никакой реакции у FF. Chrome и Opera при таком коде вообще в поле значения не принимают, кроме цифр. А FF принимает любые символы, поле не очищает. |
причем здесь нажатия
var clearvalue = function () { var order = document.getElementById("order"); if (order) order.value = null; }; window.onload = clearvalue; |
Цитата:
Но на самом деле все началось с того, что нужно, если в поле вводят буквы вместо цифр, поле должно либо не принимать символы, либо очищаться после потери фокуса. Проблема, что поле не очищается при обновлении страницы возникла в процессе. Так вот: onKeyPress = "function()" { if ((event.keyCode<48)||(event.keyCode>57)){ event.returnValue=false; document.getElementById("order").value=null; } } Это работает в Хроме и Опере (даже без последней строки), но не работает в FF (я планировал третью строку для FF). Напишите, как сделать, чтобы работало везде. |
|
<input type="text" id="order" /> <script> window.onload = function () { var order = document.getElementById("order"); if (order) order.value = null; order.oninput = function () { this.value = this.value.replace(/\D/g, ''); } }; </script> |
в head пропеши вот это <meta http-equiv="pragma" content="no-cashe">
загляни еще вот сюда http://hard-code.esy.es/ там кэш точно таже чистит сам проверь |
ну или ctrl+F5 =)
|
Цитата:
|
Цитата:
Достаточно добавить к input autocomplete="off" |
Все что на сервере написано в value инпута - то default value. Допустим если завести кнопку reset и нажать ее, в то время как с сервера пришли какие-то данные, ну, например после ошибки ввода, то никакого ризета не произойдет, поскольку значения полей будут заменены на значения по умолчанию. Которые как бы вовсе и не по умолчанию.
Короче, нормально _всегда_ писать что-то в value. Если нет ничего - value="". |
Часовой пояс GMT +3, время: 12:42. |