如何使用javascript提交表单后保留表单数据?

bom*_*mbo 5 javascript forms

当我提交此表单时,值只会从文本框中消失.我喜欢他们留在文本框中打印.我怎么做?

<form id="myform" method="get" action="" onSubmit="hello();">

       <input id="hour" type="text" name="hour" style="width:30px; text-align:center;" /> :
       <input id="minute" type="text" name="minute" style="width:30px; text-align:center;" />
       <br/>
       <input type="submit" value="Validate!" />
    </form>

    <style type="text/css">
    .error {
        color: red;
        font: 10pt verdana;
        padding-left: 10px
    }
    </style>
<script type="text/javascript">
function hello(){

    var hour = $("#hour").html();
    alert(hour);
}
    $(function() {
        // validate contact form on keyup and submit
        $("#myform").validate({
            //set the rules for the fild names
            rules: {
                hour: {
                    required: true,
                    minlength: 1,
                    maxlength: 2,
                    range:[0,23]
                },
                minute: {
                    required: true,
                    minlength: 1,
                    maxlength: 2,
                    range:[0,60]
                },
            },
            //set messages to appear inline
            messages: {
                hour: "Please enter a valid hour",
                minute: "Please enter a valid minute"
            }
        });


    });
    </script>
Run Code Online (Sandbox Code Playgroud)

Aar*_*lla 9

提交页面后,数据将立即发送到服务器并加载新页面.在您的情况下,这是与以前相同的页面,但这对浏览器没有影响.要保留这些值,您必须在呈现页面时填写服务器上的值.

通常,您只需将HTML请求参数中的数据复制到字段中即可.

  • 啊?当您读取参数时,您的 HTML 框架应该已为您解码它们。当你把它们写出来时,你的输出编写器应该对它们进行正确的编码。我不明白你的意思。 (2认同)

T.J*_*der 5

当您提交表单时,整个页面将替换为来自服务器的响应。如果您想留在页面上(而不是将其替换为响应),您可能会考虑使用jQuery.postjQuery.ajax将表单数据发送到服务器,而不是实际提交表单。

  • @Lina:小心你在那里看到的几篇“使用 jQuery 提交表单”的文章,你会看到很多这样的东西:`var q = "?fname=" + $('#firstNameField') .val() + "&amp;lname=" + $('#lastNameField').val()";` 看起来好像它们是一件好事。你真的,*真的* 需要通过 `encodeURIComponent` 对这些参数值进行编码,你不能像在那个代码中那样直接获取它们。(考虑一下如果你有一个“公司名称”字段并且有人输入值“Foo &amp; Bar Limited”会发生什么——那`&amp;`确实需要编码。)它是不复杂,但人们错过了。享受吧! (2认同)