2014-09-24 2 views
0

В PHP, если текст ввода «cmtx_comment» пуст, в форме submit я показываю предупреждение 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

+1

@juanpastas w3schools является не очень хорошая рекомендация. MDN лучше – mplungjan

+0

Что вы спрашиваете? Если поле пустое, вы показываете предупреждение, после OK поле пусто! Есть ли проблема здесь? – mplungjan

ответ

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

На первой загрузке страницы, вы представлены:

Если вы не ввести комментарий, вы получите уведомление:

Если вы сделать ввести комментарий, вы получите другое предупреждение:

страница будет обновить (или пост, просто снимите комментарий возвращения верно, и комментарий location.reload), и вы все равно увидите содержимое, которое вы разместили в первый раз.

+0

Мне кажется, вам нужно очистить локальную хранилище после успешной проверки формы. –

+0

Нет, форма проверяется на стороне клиента. Когда страница публикуется/обновляется, данные должны сохраняться. –

+0

Если комментарий был успешно сохранен после проверки, если пользователь снова перейдет на ту же страницу, ваши значения localStorage будут находиться в текстовом поле. –

Смежные вопросы