[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка текстового поля на ввод информации
noskovgleb
Доброго времени суток ребята.
Проверка текстового поля на ввод информации.
Как проверить данные(type="text") если вводятся через Ctrl+v.
кто делал уже что-то на подобии? подскажите плиз.


 ! 

М
Цитата
Уважаемые пользователи!!!
Cтарайтесь правильно выбирать категории для размещения ваших вопросов - не валите все в один форум - PHP для начинающих.

Перемещаю в раздел JavaScripts.
Invis1ble




Спустя 7 минут, 21 секунда (23.08.2011 - 00:12) quickxyan написал(а):
если проверяешь php - то абсолютно так же как и раньше smile.gif
а если js, то думаю надо использовать - onchange()....

Спустя 23 минуты, 29 секунд (23.08.2011 - 00:35) Diss написал(а):
onchange для поля ввода срабатывает только при анфокусе (ну это так просто к слову)
собственно не понимаю чем проверка контрл+в отличается от обычной проверки?
на данный вопрос я бы ответил
"точно так же как и при обычном вводе."

Спустя 2 часа, 40 минут, 18 секунд (23.08.2011 - 03:16) noskovgleb написал(а):
точно не знаю.
Но у меня такая проверка:
onkeypress="javascript: if((event.charCode < 48)||(event.charCode > 57)) return false;"

Она не разрешает вводить любые другие символы, кроме числа.
Но когда контрл+в, то тогда оно нормально вводится, все принимает и символы и цифры, и цифры символы.

Спустя 25 минут, 4 секунды (23.08.2011 - 03:41) Diss написал(а):
onkeypress="javascript: if((event.charCode =! код клавиши контрл) &&(event.charCode < 48)||(event.charCode > 57)) return false;"
навернок так

ну а вообще вставлять еще мышкой можно wink.gif

Спустя 37 минут, 5 секунд (23.08.2011 - 04:18) Invis1ble написал(а):
Интересно, что будет, если юзверь отключит js ? ))

Спустя 50 минут, 30 секунд (23.08.2011 - 05:08) inpost написал(а):
Invis1ble
Половину сайтов перестанут работать smile.gif

Спустя 8 часов, 16 минут, 15 секунд (23.08.2011 - 13:25) Diss написал(а):
Цитата
Интересно, что будет, если юзверь отключит js ? ))

а если будут подключать собственные ксс, отключат куки и все остальное... biggrin.gif
Ну я везде писал, что проверка js это чисто для пользователя, чтобы он сдуру не ввел что-то случайно.
Если ты ждешь на выходе число
ну делай ты тупо (int) в пхп, и глубоко на***ть что там юзверь умудрился ввести.

Спустя 2 дня, 13 часов, 39 минут, 16 секунд (26.08.2011 - 03:04) noskovgleb написал(а):
т.е. по идее такая конструкция должна защитить от копипаста:

onchange="javascript: if((event.charCode < 48)||(event.charCode > 57)) return false;"

Но и в этом случае у меня удается вставить любой текст.
А насчет того чтоб поставить тип int, то и в этом случае можно вводить любые другие символы. :(

Спустя 6 минут, 14 секунд (26.08.2011 - 03:10) Invis1ble написал(а):
Такая "защита" от копипаста - фигня.
Юзер отключит js и скопирует, что ему нужно smile.gif

Спустя 20 минут, 37 секунд (26.08.2011 - 03:31) noskovgleb написал(а):
но нужно чтоб он не скопировать не мог, а чтоб в текстовое поле не смог вставить текст и прочие символы кроме числа

Спустя 1 минута, 24 секунды (26.08.2011 - 03:32) inpost написал(а):
noskovgleb
А какой смысл? Копирует ли человек, или пишет вручную? Я почти все пароли копирую!

Спустя 5 минут, 27 секунд (26.08.2011 - 03:38) Invis1ble написал(а):
noskovgleb
Цитата
но нужно чтоб он не скопировать не мог, а чтоб в текстовое поле не смог вставить текст и прочие символы кроме числа

это я понял, но не в этом суть. Ты делаешь защиту средствами языка, работающего у клиента на машине.

Спустя 20 часов, 12 минут, 33 секунды (26.08.2011 - 23:50) noskovgleb написал(а):
Цитата (Invis1ble @ 26.08.2011 - 00:38)
noskovgleb
Цитата
но нужно чтоб он не скопировать не мог, а чтоб в текстовое поле не смог вставить текст и прочие символы кроме числа

это я понял, но не в этом суть. Ты делаешь защиту средствами языка, работающего у клиента на машине.

Это не важно. Мне главное знать как это сделать)



Спустя 4 минуты, 38 секунд noskovgleb написал(а):
Цитата (inpost @ 26.08.2011 - 00:32)
noskovgleb
А какой смысл? Копирует ли человек, или пишет вручную? Я почти все пароли копирую!

проблема в том что когда копипастить оно введет все что угодно. А на непосредственный ввод с клавиатуры есть защита. Но не важно что ее можно обойти. Главное как бы сделать так чтоб копипастить нельзя, чтоб защитить от такого юзера, который не смог бы отключить джаваскрипт.

Спустя 6 минут, 17 секунд (26.08.2011 - 23:56) Diss написал(а):
никак
для него это строка, а строку в буфере обмена посредством js точно нельзя редактировать.

Спустя 16 минут, 40 секунд (27.08.2011 - 00:13) sebastjan написал(а):
Цитата
чтоб защитить от такого юзера, который не смог бы отключить джаваскрипт.

К сожалению ни как на стороне клиента этого не сделать.
Захочет, выковыряет всё что ему надо.




Спустя 2 минуты, 46 секунд sebastjan написал(а):
Можно придумать бурду на яваскрипт отслеживая сочетания клавишь, но это не панацея, а так маскировка для неопытных.

Спустя 44 минуты, 35 секунд (27.08.2011 - 00:58) Diss написал(а):
я сказал самое простое и эффективное решение
(int) и пусть вводят и копируют что душе угодно

Спустя 2 часа, 6 минут, 55 секунд (27.08.2011 - 03:05) Эли4ка написал(а):
Вот Вам красивый и качественный пример..





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
How to create an awesome contact form?</title>
<link
href="css/default.css" rel="stylesheet" type="text/css" />
<script
src="js/jquery.js" type="text/javascript"></script>
<script
src="js/validate.min.js" type="text/javascript"></script>
<script
src="js/init.js" type="text/javascript"></script>
</head>

<body>


<div
class="wrapper">
<form
id="form" class="blocks" action="#" method="post">

<p>
<label>
Name:</label>
<input
type="text" class="text" name="name" />
</p>
<p>
<label>
Company:</label>
<input
type="text" class="text" name="company" />
</p>

<p>
<label>
Your e-mail:</label>
<input
type="text" class="text" name="email" />
</p>
<p>
<label>
Contact number:</label>
<input
type="text" class="text" name="phone" />
</p>

<p
class="area">
<label>
Message:</label>
<textarea
class="textarea" name="message"></textarea>
</p>
<p>
<label>
 </label>
<input
type="submit" class="btn" value="Submit" />
</p>

</form>
</div>

</body>
</html>



стиль
/* ------ general
-----------------------------------------------*/


body {
font-family:Arial, Helvetica, sans-serif;
background:#fff;
font-size:11px;
}

.wrapper {
margin:200px auto 0;
width:1000px;
}


.blocks p {
margin-bottom:15px;
position:relative;
}

.btn {
display:block;
float:left;
height:31px;
line-height:31px;
padding:0 10px;
background:url(../gfx/bgbtn.jpg) repeat-x;
color:#565e62;
font-weight:bold;
font-size:11px;
border:1px solid #e1e0df;
outline:none;
}

.text,
.textarea {
padding:5px 10px;
height:27px;
border:1px solid #ddd;
color:#333;
background:url(../gfx/bginput.jpg) repeat-x bottom #fff;
position:relative;
z-index:2;
}

.text {
width:220px;
}

.textarea {
height:150px;
width:350px;
}

.blocks label {
float:left;
width:100px;
line-height:37px;
text-align:right;
margin-right:15px;
font-weight:bold;
color:#666;
}

.blocks label.error,
.blocks label.ok {
position:absolute;
z-index:1;
top:-4px;
left:110px;
padding:5px 15px 5px 280px;
/*reset label*/
width:auto;
text-align:left;
margin:0;
background-repeat:no-repeat;
background-position:257px 16px;
}

.blocks label.ok {
background-image:url(../gfx/icook.gif);
background-color:#deefca;
color:#577530;
}

.blocks label.error {
background-image:url(../gfx/icofail.gif);
background-color:#f5d6d7;
color:#c81925;
}

.area label.ok,
.area label.error {
height:163px;
padding-left:410px;
background-position:387px 16px;
}

/* CSS3 */
.btn,
.text,
.textarea,
.blocks label.error,
.blocks label.ok {
-moz-border-radius:8px;
-webkit-border-radius:8px;
border-radius:8px;
}

a {
color:#fff;
}

a img {
border:none;
}



две библиотеки возьмете сами а нижний скрипт вот
$(function(){

$("#form").validate({
rules: {
name: {
required: true,
minlength: 3
},
company: {
required: true
},
phone: {
required: true,
number: true,
minlength: 6
},
email: {
required: true,
email: true
},
message: {
required: true
}
}
,
messages: {
name: {
required: 'This field is required',
minlength: 'Minimum length: 3'
},
company: {
required: 'This field is required'
},
phone: {
required: 'This field is required',
number: 'Invalid phone number',
minlength: 'Minimum length: 6'
},
email: 'Invalid e-mail address',
message: {
required: 'This field is required'
}
}
,
success: function(label) {
label.html('OK').removeClass('error').addClass('ok');
setTimeout(function(){
label.fadeOut(500);
}, 2000)
}
}
);

});

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.