Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проблема с innerHTML (https://javascript.ru/forum/events/40567-problema-s-innerhtml.html)

Зыкин Илья 11.08.2013 11:09

Проблема с innerHTML
 
Брр, подскажите пожалуйста)

Есть у меня страница, test.php предположим.
И в ней форма:
<form onsubmit="problem()" method="post" action="">
	<table>			
		<tr>
			<td colspan="2"><p><b>формат: гг-мм-дд чч:00</b></p></td><td></td>
		</tr>
		<tr>
			<td align="right">Дата:</td><td><input id="dates" name="dates" type="text" size="10" /></td>
		</tr>
		<tr>
			<td colspan="2"><input type="submit" value="Изменить задание" name="but" /></td>
		</tr>
	</table>
</form>


Ну и сам функция
function problem()
{
    var problems = new RegExp(/\d{2}-\d{2}-\d{2}\s\d{2}:\d{2}/);
	var pat_true = problems.test(document.getElementById('dates').value);
    if (pat_true)
    {
		document.getElementById('problem').innerHTML = 'Изменено';
    }
	else
	{
		document.getElementById('problem').innerHTML = 'Проверьте дату';
	}
}


Ну собственно говоря помогите заткнуть дыру в моих знаниях, как сделать так чтобы текст в span'e сохранился, как сообщение о неверно введённой дате.
А не на секунду появлялся и пропадал(обновляется страница или что)?
Ей богу не ругайтесь)

Deff 11.08.2013 11:14

По тесту установить кук, указываюший на неверный формат, если дата верна - предыдущий кук, если есть, - удаляем

При входе на страницу - проверять наличие кука

Deff 11.08.2013 11:15

:) То же самое можно сделать и с помощью LocalStorage

danik.js 11.08.2013 11:22

Я так понимаю что если дата неправильная, то форму отсылать не нужно? Тогда так:
1) в атрибуте формы пиши onsubmit="return problem()"
2) в коде пиши
if (pat_true)
    {
        document.getElementById('problem').innerHTML = 'Изменено';
        return true;
    }
    else
    {
        document.getElementById('problem').innerHTML = 'Проверьте дату';
        return false;
    }


И кстати, не нужно писать new RegExp(/тут_регулярка/) - это бессмысленно. Ты либо пиши new RegExp("тут_регулярка") либо просто /тут_регулярка/ (в первом случае обратные слэши нужно будет удваивать).

Зыкин Илья 11.08.2013 11:28

Спасибо всем)

Особенно danik.js
Заодно решил проблему с тем что при ошибке не нужно отправлять форму)

Не ожидал таких быстрых ответов)

ruslan_mart 11.08.2013 13:58

document.getElementById('problem').innerHTML = pat_true ? 'Изменено' : 'Проверьте дату';
return !!pat_true;

Зыкин Илья 11.08.2013 17:04

Думаю нет смысла создавать отдельную тему, хотя я не знаю к этому ли разделу относится такой вопрос.

Вот же js)

Теперь встал вопрос, как мне по условию в js, аккуратно выполнить php insert допустим.

Тоесть
if (pat_true)
    {
        "как тут выполнить php если if (pat_true) истинно"
        return true;
    }


Извините за путанность.

danik.js 11.08.2013 17:36

php нативно не поддерживается браузерами. Но если очень хочется то вот: http://phpjs.hertzen.com


Часовой пояс GMT +3, время: 20:34.