簡體   English   中英

提交表單后如何更改文本框的值?

[英]How to change the value of textbox when form is submitted?

我有一個表單,其中的字段預先填充有默認值,如下所示:

<input type=text name=first value="First Name" class="unfilled" />

單擊文本框后,將從文本框中刪除unfilled的類,並將文本框設置為空白,以便用戶可以輸入自己的信息。

問題在於,提交表單時,將使用這些默認值來提交表單,這會弄亂服務器端的驗證。 我該怎么做,以便在提交表單時,所有具有默認值的字段都設為空白,因此服務器端驗證會拋出錯誤:“請填寫此字段”?

我正在嘗試以下不起作用的代碼:

$("#myForm").submit(function()
        {
            $(".unfilled").val('');
        }
);

這確實使字段為空白,但是服務器仍會使用其先前的默認值來接收它們。

您需要先停止執行表單,更改值,然后手動提交表單。

$("#myForm").submit(function(e)
{
    // Stop the form submit
    e.preventDefault();

    $(".unfilled").val('');
    $(this).submit();
}

我認為您只是語法錯誤。 你錯過了你的右括號submit方法。

我只是把它攪了一下,效果很好

<!DOCTYPE html>
<html>
    <body>
        <?php
        var_dump($_POST);
        ?>
        <form action="test.php" method="post">
            <input type="text" name="first" value="First Name" class="unfilled">
            <input type="submit">
        </form>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script type="text/javascript">
            jQuery(function($) {
                $('form').submit(function() {
                    $('.unfilled').val('');
                });
            });
        </script>
    </body>
</html>

我認為您需要JQuery的.click()函數。

例:

   $(function () { // shorthand for document.ready
      $('.unfilled').click(function () {
         $(this)
            .val('')
            .removeClass('unfilled');
      })
   });

更新

抱歉,我誤會了您,以為您需要使用占位符之類的功能。

當然,您可以通過return false; ,但這會取消提交。 或者像GreenWebDev所說的那樣使用e.preventDefault();

您必須return true; 如果您希望表單提交,否則返回false。 這種方法的問題在於,字段將在發布值之前“閃爍”,從而產生一些不專業的感覺。 最好使用隱藏值並將其設置為submit()事件。

暫無
暫無

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

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