2014-09-24 61 views
0

在PHP中,如果輸入文本「cmtx_comment」爲空,表單提交上顯示javascript警報。在警報中按OK後,用戶在窗體中所有字段中輸入的值都將消失。 ?我如何才能讓用戶輸入的值,而無需將代碼添加到輸入元素的值(類似<input type="text" name="something" value="<?php echo $_GET['something'];?>">在表單提交後保留輸入值(附帶)

if (empty($cmtx_comment)) { //if comment value is empty 
echo <<<EOD 
<script> 
alert('Please enter a comment!'); 
</script> 
EOD; 
return false; 
} else { //if comment entered 
do stuff 
+0

您可以在客戶端驗證,而不是提交馬上它:http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_required – juanpastas 2014-09-24 04:30:25

+1

@juanpastas W3Schools的是不是一個很好的參考。 MDN更好 – mplungjan 2014-09-24 04:39:25

+0

你在問什麼?如果該字段爲空,則顯示一條提示,在確定該字段爲空之後?這裏有問題嗎? – mplungjan 2014-09-24 04:44:27

回答

4

您是否嘗試過的localStorage和表單驗證

HTML:

<form method="post" action="" onSubmit="return saveComment();"> 
    <input type="text" name="cmtx_comment" id="cmtx_comment" value="" /> 
    <input type="submit" value="Save" /> 
</form> 

的JavaScript:

document.getElementById("cmtx_comment").value = localStorage.getItem("comment"); 

function saveComment() { 
    var comment = document.getElementById("cmtx_comment").value; 
    if (comment == "") { 
     alert("Please enter a comment in first!"); 
     return false; 
    } 

    localStorage.setItem("comment", comment); 
    alert("Your comment has been saved!"); 

    location.reload(); 
    return false; 
    //return true; 
} 

Example

在第一頁加載,你都帶有:

如果不輸入註釋,你會得到警告:

如果輸入註釋,你會得到一個不同的警報:

頁面便會刷新(或交的,只是取消註釋返回true,並發表意見location.reload),你仍然會看到你第一次發佈的內容。

+0

我認爲你需要清除表單驗證成功後localStorage .. – 2014-09-24 05:35:08

+0

不,表單正在客戶端進行驗證。當頁面發佈/刷新時,數據應該仍然存在。 – 2014-09-24 05:36:24

+0

如果評論在驗證過程中成功保存,如果用戶再次進入同一頁面,您的localStorage值將出現在文本框中。 – 2014-09-24 05:41:16