2010-04-08 44 views
5

Khi tôi gửi biểu mẫu này, các giá trị chỉ biến mất khỏi hộp văn bản. Tôi thích họ ở lại in trong hộp văn bản. Làm thế nào để làm điều đó?làm cách nào để giữ dữ liệu biểu mẫu sau khi gửi biểu mẫu bằng javascript?

<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> 
+0

nơi bạn muốn giữ dữ liệu đó? Bạn muốn làm gì với dữ liệu đó? Vui lòng giải thích chi tiết câu hỏi của bạn. – Salil

+0

cảm ơn cho các ý kiến, khi tôi gửi mẫu trên, các giá trị chỉ biến mất khỏi hộp văn bản, tôi thích chúng ở lại được in trong hộp văn bản, làm thế nào để tôi làm điều đó? cảm ơn rất nhiều – Lina

Trả lời

4

Khi bạn gửi biểu mẫu, toàn bộ trang được thay thế bằng phản hồi từ máy chủ. Nếu bạn muốn ở lại trang (thay vì được thay thế bằng phản hồi), bạn có thể xem sử dụng jQuery.post hoặc jQuery.ajax để gửi dữ liệu biểu mẫu tới máy chủ thay vì thực sự gửi biểu mẫu.

+0

Điều này nghe thật thú vị, tôi sẽ google một chút để xem cách thực hiện jquery.post và cung cấp cho bạn một phản hồi – Lina

+2

@Lina: Hãy cảnh giác với một số bài viết "gửi biểu mẫu bằng jQuery" mà bạn thấy ở đó, bạn sẽ thấy rất nhiều thứ như thế này: 'var q ="? fname = "+ $ ('# firstNameField'). val() +" & lname = "+ $ ('# lastNameField'). val (Bạn thực sự, * thực sự * cần mã hóa các giá trị tham số đó thông qua 'encodeURIComponent', bạn không thể chỉ lấy chúng như trong mã đó. (Hãy xem xét điều gì sẽ xảy ra nếu bạn có một trường "tên công ty" và một người nào đó đặt vào giá trị "Foo & Bar Limited" - rằng '& 'thực sự cần mã hóa.) Nó không phức tạp, nhưng mọi người bỏ lỡ nó. Hãy tận hưởng! –

+0

đó là một lời khuyên tuyệt vời mà tôi sẽ luôn luôn đánh giá cao :) – Lina

9

Ngay sau khi bạn gửi trang, dữ liệu được gửi đến máy chủ và một trang mới được tải. Trong trường hợp của bạn, đây là trang giống như trước nhưng điều đó không tạo nên sự khác biệt cho trình duyệt. Để giữ các giá trị, bạn phải điền các giá trị trên máy chủ trong khi hiển thị trang.

Thông thường, bạn chỉ cần sao chép dữ liệu từ tham số yêu cầu HTML vào các trường.

+1

Thông thường, bạn * không thể * chỉ cần sao chép các tham số yêu cầu HTML vào các trường. HTML-thoát chúng đầu tiên, hoặc trang của bạn sẽ được mở rộng để tấn công XSS. – Tomalak

+1

Huh? Khi bạn đọc các tham số, khung HTML của bạn nên giải mã chúng cho bạn. Khi bạn viết chúng ra, nhà văn đầu ra của bạn nên mã hóa chúng đúng cách. Tôi không thấy quan điểm của bạn. –

0

Bạn có thể sử dụng cookie từ JavaScript để giữ giá trị. Về cơ bản, bạn truy cập một cái gì đó có tên là document.cookie.

0

Như một ví dụ, để giữ lại dữ liệu trong một văn bản nhập vào:

<input type="text" name="inputText" id="inputText" placeholder="Enter the name of your all-time favorite Duckbilled Platypus" value="@Request["inputText"]" autofocus style="display: inline-block;" /> 
0

Trong thẻ hình thức, bao gồm onsubmit ="return false" để tránh reset form. Ví dụ:

<form name = "inputNumbers" onsubmit ="return false"> 
+0

Điều này không hoạt động ... Chức năng gửi bị tắt theo cách này – MartinGGWW

Các vấn đề liên quan