jquery, как очистить поле ввода

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

Когда я возвращаюсь и возвращаюсь на страницу, в этом поле ввода отображается последний введенный номер, отображаемый в поле ввода.

Есть ли способ очищать поле каждый раз при загрузке страницы?

$('#shares').keyup(function(){
    payment = 0;
    calcTotal();
    gtotal = ($('#shares').val() * 1) + payment;
    gtotal = gtotal.toFixed(2);
    $("p.total").html("Total Payment: <strong>" + gtotal + "</strong>");
});

person kosbou    schedule 10.02.2012    source источник


Ответы (6)


Вы можете очистить поле ввода, используя $('#shares').val('');

person shaunsantacruz    schedule 10.02.2012
comment
Работает ли это и соответствует ли это спецификации, если у нас есть такой числовой ввод <input type="number" min="0' max="10" value="5"></input>? Я думаю, по-другому, можно ли сделать числовой ввод пустым? - person Kevin Wheeler; 11.06.2015
comment
Как насчет .val([])? - person Fr0zenFyr; 14.09.2015
comment
Кстати, .val([]) также может отменить выбор любой выбранной опции в списке выбора ... не так много с .val(''). Лучшее в этом - кроссбраузерная поддержка. P.S: Это альтернатива только другому эффективному кроссбраузерному решению - $("select option").prop("selected", false);, но работает со всеми входными данными. Спасибо Джону за созданный им тест. - person Fr0zenFyr; 14.09.2015

Чтобы сбросить ввод текста, числа, поиска, текстового поля:

$('#shares').val('');

Для сброса выберите:

$('#select-box').prop('selectedIndex',0);

Чтобы сбросить радиовход:

$('#radio-input').attr('checked',false);

Чтобы сбросить ввод файла:

$("#file-input").val(null);
person chickens    schedule 16.10.2019

При отправке формы используйте метод сброса формы. Метод reset () сбрасывает значения всех элементов формы.

$('#form-id')[0].reset();

OR 

document.getElementById("form-id").reset();

https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/reset

$("#submit-button").on("click", function(){
       //code here
       $('#form-id')[0].reset();
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
<form id="form-id">
  First name:<br>
  <input type="text" name="firstname">
  <br>
  Last name:<br>
  <input type="text" name="lastname">
  <br><br>
  <input id="submit-button" type="submit" value="Submit">
</form> 
</body>
</html>

person Radhika    schedule 06.03.2017
comment
Может кому-то помочь, но в этом контексте ваш ответ бесполезен. - person Marco Concas; 06.11.2019

Установка val('') очистит поле ввода. Итак, вы бы использовали это:

Очистите поле ввода при загрузке страницы:

$(function(){
    $('#shares').val('');
});
person Francis Lewis    schedule 10.02.2012

Поскольку вы используете jQuery, как насчет использования триггера - reset:

$(document).ready(function(){
  $('#shares').trigger(':reset');
});
person Sablefoste    schedule 12.10.2016

если вы нажмете кнопку «назад», она обычно имеет тенденцию застревать. Что вы можете сделать, это когда форма будет отправлена, очистите элемент, а затем перед его переходом на следующую страницу, но после того, как вы сделаете с элементом то, что вам нужно.

    $('#shares').keyup(function(){
                payment = 0;
                calcTotal();
                gtotal = ($('#shares').val() * 1) + payment;
                gtotal = gtotal.toFixed(2);
                $('#shares').val('');
                $("p.total").html("Total Payment: <strong>" + gtotal + "</strong>");
            });
person chris    schedule 10.02.2012