Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите со скриптом (https://javascript.ru/forum/dom-window/30913-pomogite-so-skriptom.html)

Atonix 20.08.2012 13:23

Помогите со скриптом
 
Есть такой скрипт :
<head>
<script language="JavaScript">
function getData() {
alert("Вы ввели: " + document.forms[0].textField.value);
}
</script>
</head>
<body>
<form>
<input type=text name=textField size=45>
<input type="button" value="Ответ" onClick="getData()">
</form>
</body>

Мне необходимо сделать так, что если в поле занести правильный ответ, то сразу произойдет переход на страницу(нужную мне). Если ответы будут не верные, то появится просто надпись - ответ не верный. Прошу помочь!

bes 20.08.2012 14:19

<form>
	<input type=text name=textField size=45> 
	<input type="button" value="Ответ">
</form>

<script>
window.onload = function () {
	document.forms[0].children[1].onclick = function () {
		var text = document.forms[0].textField.value;
		if (text == 'ha') {
			location.href = 'http://javascript.ru';
		} else {
			alert('ответ неверный');
		}
	}
}
</script>

Deff 20.08.2012 14:26

Верный Ответ: "Тут верный Ответ"

<script language="JavaScript">
 function getData(a) {
 var aOtwet=a.getAttribute("data");
 var b = document.forms[0].textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form action="Ccылка">
 <input type=text name=textField size=45> 
 <input type="button" data="Тут верный Ответ" value="Ответ" onClick="getData(this)">
 </form>

Atonix 20.08.2012 14:43

Цитата:

Сообщение от Deff (Сообщение 199001)
Верный Ответ: "Тут верный Ответ"

<script language="JavaScript">
 function getData(a) {
 var aOtwet=a.getAttribute("data");
 var b = document.forms[0].textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form action="Ccылка">
 <input type=text name=textField size=45> 
 <input type="button" data="Тут верный Ответ" value="Ответ" onClick="getData(this)">
 </form>

Deff,
Все супер работает, еще вопрос. можно ли как нибудь защитить верный ответ, чтобы в искодном коде страницы не было написано правильного ответа?

Deff 20.08.2012 14:53

Цитата:

Сообщение от Atonix
можно ли как нибудь защитить верный о

К примеру, - заескейпить строку вставляемую в date="";
alert(escape('Тут верный Ответ').replace(/u/g,'\\u'))



Верный Ответ: "Тут верный Ответ"
<script language="JavaScript">
 function getData(a) {
 var aOtwet=unescape(a.getAttribute("data").split("\\u").join("u"))
 var b = document.forms[0].textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form action="Ccылка">
 <input type=text name=textField size=45> 
 <input type="button" data="%\u0422%\u0443%\u0442%20%\u0432%\u0435%\u0440%\u043D%\u044B%\u0439%20%\u041E%\u0442%\u0432%\u0435%\u0442" value="Ответ" onClick="getData(this)">
 </form>

Чуть подправил под escape

Atonix 20.08.2012 15:14

Цитата:

Сообщение от Deff (Сообщение 199010)
Ну заескейпить - к примеру
alert(escape('Тут верный Ответ').replace(/u/g,'\\u'))



Верный Ответ: "Тут верный Ответ"
<script language="JavaScript">
 function getData(a) {
 var aOtwet=unescape(a.getAttribute("data").replace(/\/\/u/g,'u'));
alert(a.getAttribute("data").replace(/\/\//g,''))
 var b = document.forms[0].textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form action="Ccылка">
 <input type=text name=textField size=45> 
 <input type="button" data="%\u0422%\u0443%\u0442%20%\u0432%\u0435%\u0440%\u043D%\u044B%\u0439%20%\u041E%\u0442%\u0432%\u0435%\u0442" value="Ответ" onClick="getData(this)">
 </form>


Тут Автотрансформирюца спец символы - но через серв - будет в норме

Можно через encodeURI

Deff,
Все равно в исходном коде он виден. А чтобы вообще не спалить слово,так не возможно сделать? А можно еще ссылку скрыть, чтобы тоже ее в исходном коде не было видно?

Deff 20.08.2012 15:27

Atonix,
Я чуть сменил кодирование

bes 20.08.2012 15:35

на сервер данные отправляйте, там и проверяйте (см ajax или отправка данных в фрейм), на клиенте - гарантий нет

Atonix 20.08.2012 15:40

Цитата:

Сообщение от Deff (Сообщение 199037)
Atonix,
Я чуть сменил кодирование

Deff,
Супер ВООБЩЕ класс. А ссылку можно тоже спрятать?

Deff 20.08.2012 15:58

alert(escape('Тут верный Ответ').replace(/u/g,'\\u'))
alert(escape('Сcылка').replace(/u/g,'\\u'))


Верный Ответ: "Тут верный Ответ"

<script language="JavaScript">
 function getData(a) {
 var aOtwet=unescape(a.getAttribute("data").split("\\u").join("u"))
 alert(aOtwet)
 var z=document.forms[0];
 var b = z.textField.value;
    if (aOtwet==b) {
        alert("Вы ввели: Верный ответ");
        var xz=unescape(z.getAttribute("data").split("\\u").join("u"));
alert("Переходим на==> "+xz);
        z.setAttribute("action",xz);
        document.forms[0].submit();
    }  else  alert("Вы ввели: Неверный ответ");
 }
 </script>
 </head>
 <body>
 <form data="%\u0421c%\u044B%\u043B%\u043A%\u0430" action="псевдоCcылка" >
 <input type=text name=textField size=45> 
 <input type="button" data="%\u0422%\u0443%\u0442%20%\u0432%\u0435%\u0440%\u043D%\u044B%\u0439%20%\u041E%\u0442%\u0432%\u0435%\u0442" value="Ответ" onClick="getData(this)">
 </form>


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