reset
просто восстановит элементы в состояние, которое диктует разметка, что не поможет.
Вместо этого вам нужно установить defaultValue
элементов на новое значение по умолчанию, а затемиспользуйте reset
(или просто присвойте value
одновременно).defaultValue
- это свойство, которое отражает атрибут value
.
Пример:
setTimeout(function() {
console.log("Clearing defaultValue and resetting...");
$("#the-form input").prop("defaultValue", "");
$("#the-form")[0].reset();
}, 800);
<form id="the-form">
<input type="text" id="name" placeholder="Name" required = " true" value = "value from markup">
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Чтобы выяснить, нужно ли вам это сделать, вы можете сохранить идентификатор сеанса PHP на клиентской стороне sessionStorage
(в соответствии с Предложение Луиса Патриса Бессетта ) и делайте это только тогда, когда они совпадают.Вдоль этих строк нагрузки:
var phpSessionId = <?php echo json_encode(session_id())?>;
if (sessionStorage.getItem("phpsessionid") != phpSessionId) {
sessionStorage.setItem("phpsessionid", phpSessionId);
} else {
// reset the fields -- perhaps even to values you stored in `sessionStorage`
}