views:

173

answers:

3

When i submit this form, the values just disappears from the textboxes. I like them to stay printed in the textboxes. How do i do that?

<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>
+1  A: 

When you submit a form, the entire page is replaced with the response from the server. If you want to stay on the page (rather than having it replaced by the response), you might look at using jQuery.post or jQuery.ajax to send the form data to the server rather than actually submitting the form.

T.J. Crowder
This sounds really interesting, i'll google a bit to see how to do the jquery.post and give you a feedback
Lina
@Lina: Be wary of several of the "submitting a form using jQuery" articles you see out there, you'll see a lot of things like this: `var q = "?fname=" + $('#firstNameField').val() + "
T.J. Crowder
that is a great advice that i will always appreciate :)
Lina
+4  A: 

As soon as you submit the page, the data is sent to the server and a new page is loaded. In your case, this is the same page as before but that doesn't make a difference for the browser. To keep the values, you must fill in the values on the server while rendering the page.

Usually, you can simply copy the data from the HTML request parameters into the fields.

Aaron Digulla
Usually, you *cannot* simply copy the HTML request parameters into the fields. You must HTML-escape them first, or your page will be wide open to XSS attacks.
Tomalak
Huh? When you read the parameters, your HTML framework should have decoded them for you. When you write them out, your output writer should encode them properly. I don't see your point.
Aaron Digulla
A: 

You can use cookies from JavaScript to keep values in. Basically you access something called document.cookie.

Kinopiko