簡體   English   中英

提交表單后如何清除之前的文本字段值而不刷新整個頁面?

[英]How do I clear the previous text field value after submitting the form with out refreshing the entire page?

我正在使用javascripthtml做一個 web 應用程序,它有一個包含文本字段、按鈕的表單。 當我在該文本字段中輸入一個數字並通過單擊該按鈕提交時,會動態生成文本區域。 一旦我的表單被提交,就會創建一些文本區域,但是如果我對現有的文本區域不滿意,那么我再次輸入一些值而不刷新頁面。 但是之前輸入的文本字段值會顯示頁面上現有文本區域下方的新文本區域。

那么,如何在不刷新頁面的情況下清除該值。

<div>
    <html>
     <input type="text" name = "numquest" id ="numquest" value="" size="5" style="" disabled>
     <input type="button" value="submit" onclick="getFields();">
</div>
    </html>
    
    <javascript>
      var num_q=document.getElementById('numquest').value;
     //code for dynamic creation
    </javascript>

試試這個:

使用jQuery:

您可以使用以下命令重置整個表單:

$("#myform")[0].reset();

或者只是特定字段:

$('#form-id').children('input').val('')

在沒有 jQuery 的情況下使用 JavaScript

<input type="button" value="Submit" id="btnsubmit" onclick="submitForm()">

function submitForm() {
   // Get the first form with the name
   // Hopefully there is only one, but there are more, select the correct index
   var frm = document.getElementsByName('contact-form')[0];
   frm.submit(); // Submit
   frm.reset();  // Reset
   return false; // Prevent page refresh
}

您可以將元素的值設置為空白

document.getElementById('elementId').value='';

分配空值:

document.getElementById('numquest').value=null;

或者,如果要清除所有表單字段。 只需將表單重置方法調用為:

document.forms['form_name'].reset()

你可以在獲得元素值時做

document.getElementById('numquest').value='';
<form>
<input type="text" placeholder="user-name" /><br>
<input type=submit value="submit" id="submit" /> <br>
</form>

<script>
$(window).load(function() {
$('form').children('input:not(#submit)').val('')
}

</script>

你可以在任何你想要的地方使用這個腳本。

它將清除所有字段。

let inputs = document.querySelectorAll("input");
inputs.forEach((input) => (input.value = ""));

HTML

<form id="some_form">
<!-- some form elements -->
</form>

和jQuery

$("#some_form").reset();

我相信最好使用

$('#form-id').find('input').val('');

代替

$('#form-id').children('input').val('');

如果您的表單中有復選框,請使用它來休息它:

$('#form-id').find('input:checkbox').removeAttr('checked');

.val().value恕我直言是最好的解決方案,因為它對 Ajax 很有用。 並且.reset()僅在頁面重新加載后有效,並且使用 Ajax 的 API 從不刷新頁面,除非它由不同的腳本觸發。

我遇到了這個問題,我通過這樣做解決了:

.done(function() {
                    $(this).find("input").val("");
                    $("#feedback").trigger("reset");
                });

當我使用 jQuery 時,我在腳本之后添加了這段代碼。 一樣試試)

<script type="text/JavaScript">

        $(document).ready(function() {
            $("#feedback").submit(function(event) {
                event.preventDefault();
                $.ajax({
                    url: "feedback_lib.php",
                    type: "post",
                    data: $("#feedback").serialize()
                }).done(function() {
                    $(this).find("input").val("");
                    $("#feedback").trigger("reset");
                });
            });
        });
    </script>
    <form id="feedback" action="" name="feedback" method="post">
        <input id="name" name="name" placeholder="name" />
        <br />
        <input id="surname" name="surname" placeholder="surname" />
        <br />
        <input id="enquiry" name="enquiry" placeholder="enquiry" />
        <br />
        <input id="organisation" name="organisation" placeholder="organisation" />
        <br />
        <input id="email" name="email" placeholder="email" />
        <br />
        <textarea id="message" name="message" rows="7" cols="40" placeholder="сообщение"></textarea>
        <br />
        <button id="send" name="send">send</button>
    </form>

您可以分配給onsubmit屬性:

document.querySelector('form').onsubmit = e => {
   e.target.submit();
   e.target.reset();
   return false;
};

https://developer.mozilla.org/docs/Web/API/GlobalEventHandlers/onsubmit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM