javascript
  • sticky
  • 2011-01-19 98 views 0 likes 
    0

    我有一個JavaScript表單,我使用innerHTML來設置一些文本。製作粘貼javascript

    當表單提交的信息丟失。無論如何,我可以使它「粘」。我想一個餅乾,但這是我所知道的。

    感謝

    <form "action="" name="myform"> 
    <input type="text" name='name"> 
    <div id="theName"></div> 
    </form> 
    

    簡單的例子,我捕捉的名稱和需要的DIV顯示名稱表單提交後。

    +0

    你能提供一個例子嗎?聽起來像你需要服務器端的東西。 Javascript只是客戶端,所以客戶端瀏覽器必須每次都運行這個函數。 – Ben 2011-01-19 06:15:09

    回答

    2

    您是否將輸入標籤的「值」屬性設置爲某些內容或空白?你可以移除(去除屬性本身),以便使用最後一個值集合(只對非密碼類型的輸入纔是真實的,而且在所有瀏覽器中都沒有嘗試過)。或者更好的是,你可以使用諸如(PHP,ASP,RUBY等)的服務器端腳本來將屬性值設置爲先前提交的。

    <form method="post"> 
    <input type="text" name="txtinput" id="txtinput" value="<?php echo $_POST['txtinput']?>"/> 
    <input type="submit" value="submit"> 
    </form> 
    

    只在js中執行它比你使用cookies更加複雜和不可靠。 PS:我假設你沒有使用XHR(AJAX)來提交你的表單,因爲XHR的不刷新頁面或重新初始化輸入,除非你告訴他們。

    3

    您需要以某種方式保存數據。有幾種選擇:

    • 將它存儲在服務器上。提交表單時,您的服務器端腳本將接收數據;它可以將其保存在數據庫,會話變量或其他適合於您的應用程序的其他形式的存儲中。每當客戶端重新訪問帶有表單的頁面時,請讓服務器使用持久數據生成表單的HTML。
    • 使用HTML5的local storage。儘管在傳統瀏覽器中不受支持,但所有現代瀏覽器都提供本地存儲API。當用戶提交表單(將事件監聽器附加到表單的「提交」事件)時,您可以通過撥打電話localStorage[key] = value並使用localStorage[key]檢索表單數據來存儲表單數據。
    • 將其存儲在cookie中。儘管我不推薦這種方法,但您可以使用表單數據創建一個cookie。唯一的限制是數據需要用字符串表示,但我建議使用JSON。但是,您可能不應該使用這種方法,因爲每次請求都會將cookie發送到服務器;如果表單域包含大量數據,那麼您也不必要地將大量數據發送到服務器。

    使用HTML5的本地存儲爲您提供了一個自我封裝的方法,無需服務器端配置:

    <form action="" name="myform"> 
        <input type="text" name="name"> 
        <div id="theName"></div> 
    </form> 
    <script type="text/javascript"> 
        (function() { 
        var form = document.getElementsByName('myform')[0]; 
        if (localStorage['name'] !== undefined) { 
         var displayArea = document.getElementById('theName'); 
         displayArea.textContent = localStorage['name']; 
        } 
        form.addEventListener('submit', function() { 
         var nameField = document.getElementsByName('name')[0]; 
         localStorage['name'] = nameField.value; 
        }, false); 
        })(); 
    </script> 
    
    0

    這應該發生的服務器端。 Javascript是爲了增強一個頁面,而不是依靠數據操作。

    你的劇本,轉化爲PHP,看起來像

    <form action="" method="post" name="myform"> 
        <input type="text" name='name"> 
        <div id="theName"><?php 
        if(isset($_POST['name'])) { echo $_POST['name']; } 
        ?></div> 
    </form> 
    

    ...它會工作每一次,而無需調用任何JS。

    無論如何,您必須以某種方式處理表單數據 - 您打算如何在沒有服務器端腳本的情況下檢索數據?

    相關問題