Ввод данных в input вместо всплывающего окна браузера
Здравствуйте. Имеется JS код, который запоминает в куках браузера имя посетителя, и выводит его при последующих заходах, код рабочий, но здесь нужно указывать имя во всплывающем окне браузера, мне же нужно, чтобы вместо окна на странице были 2 input поля с кнопкой, куда посетитель будет вводить свои имя и фамилию. Помогите, пожалуйста исправить данный код.
function set_cookie ( name, value, expires_year, expires_month, expires_day, path, domain, secure )
{
var cookie_string = name + "=" + escape ( value );
if ( expires_year )
{
var expires = new Date ( expires_year, expires_month, expires_day );
cookie_string += "; expires=" + expires.toGMTString();
}
if ( path )
cookie_string += "; path=" + escape ( path );
if ( domain )
cookie_string += "; domain=" + escape ( domain );
if ( secure )
cookie_string += "; secure";
document.cookie = cookie_string;
}
function delete_cookie ( cookie_name )
{
var cookie_date = new Date ( ); //Текущая дата и время
cookie_date.setTime ( cookie_date.getTime() - 1 );
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
function get_cookie ( cookie_name )
{
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
if ( ! get_cookie ( "username" ) )
{
var username = prompt ( "Пожалуйста, ведите Ваше имя", "" );
if ( username )
{
var current_date = new Date;
var cookie_year = current_date.getFullYear ( ) + 1;
var cookie_month = current_date.getMonth ( );
var cookie_day = current_date.getDate ( );
set_cookie ( "username", username, cookie_year, cookie_month, cookie_day );
document.location.reload( );
}
}
else
{
var username = get_cookie ( "username" );
document.write ( "Привет, " + username + ", добро пожаловать на сайт!" );
document.write ( "<br><a href=\"javascript:delete_cookie('username'); document.location.reload( );\">Забудь обо мне!</a>" );
}
|
Цитата:
Цитата:
|
Цитата:
|
<section id="user-greeting">
<form>
<label>
Имя
<input type="text" autocomplete="name" name="name" required>
</label>
<label>
Фамилия
<input type="text" autocomplete="family-name" name="family-name" required>
</label>
<button>Запомнить</button>
</form>
<section>
Привет, <span class="name"></span>, добро пожаловать на сайт!
<button id="user-greeting-forget-button">Забудь обо мне!</button>
</section>
</section>
<script>
(function main() {
var form = document.querySelector("#user-greeting > form");
var section = document.querySelector("#user-greeting > section");
function changeView() {
if ("name" in localStorage) {
form.style.display = "none";
section.style.display = "";
document.querySelector("#user-greeting .name").textContent = localStorage.name;
} else {
section.style.display = "none";
form.style.display = "";
}
}
form.addEventListener("submit", function(event) {
event.preventDefault();
var data = new FormData(form);
localStorage.name = [data.get("name"), data.get("family-name")].join(" ");
changeView();
});
document.getElementById("user-greeting-forget-button").addEventListener("click", function() {
delete localStorage.name;
changeView();
});
changeView();
})();
</script>
|
Malleys,
Спасибо большое |
Malleys,
Код рабочий, но нужно кое что исправить. Буду признателен, если поможете. 1. Нужно убрать на страницах кнопку/функцию "Забудь обо мне!" 2. Надо чтобы введенные пользователем имя (name) и фамилия (family-name) выводились на странице page2.html по отдельности, чтобы можно было поставить их в разные части страницы.
<section id="user-greeting">
<form>
<label>
Имя
<input type="text" autocomplete="name" name="name" required>
</label>
<label>
Фамилия
<input type="text" autocomplete="family-name" name="family-name" required>
</label>
<button onclick="location.href='https://site.ru/page2.html'">Запомнить</button>
</form>
<section>
Привет, <span class="name"></span>, добро пожаловать на сайт!
<button id="user-greeting-forget-button">Забудь обо мне!</button>
</section>
</section>
(function main() {
var form = document.querySelector("#user-greeting > form");
var section = document.querySelector("#user-greeting > section");
function changeView() {
if ("name" in localStorage) {
form.style.display = "none";
section.style.display = "";
document.querySelector("#user-greeting .name").textContent = localStorage.name;
} else {
section.style.display = "none";
form.style.display = "";
}
}
form.addEventListener("submit", function(event) {
event.preventDefault();
var data = new FormData(form);
localStorage.name = [data.get("name"), data.get("family-name")].join(" ");
changeView();
});
document.getElementById("user-greeting-forget-button").addEventListener("click", function() {
delete localStorage.name;
changeView();
});
changeView();
})();
|
| Часовой пояс GMT +3, время: 23:44. |