Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.08.2012, 16:24
Новичок на форуме
Отправить личное сообщение для drac0Sha Посмотреть профиль Найти все сообщения от drac0Sha
 
Регистрация: 05.03.2012
Сообщений: 9

Сравнение двух строк
Здравствуйте, не очень силён в программировании, поэтому прошу о подсказке...
Дело в том, что у меня есть два поля, где я получаю строку (номер телефона)

Код:
$('.tel1 span').keyup(function(e){
  var curr_el=$(document.activeElement),
   curr_value=curr_el.val(),
   max_len=parseInt(curr_el.attr('maxlength'));
  curr_el.val(curr_value.replace(/[^0-9]+/,''))
  curr_value=curr_el.val();
  if(curr_value.match('[0-9]{'+max_len+'}')){
   curr_el.parent().next().find('input').focus();
   if(checkSumm(curr_el.parents('.tel1').find('input:text'))){
    $(this).parents('.row').removeClass('error').addClass('ok');
    if(allIsValid()){
     disable(button,false);
    }
   }
  }
  if(checkSumm(curr_el.parents('.tel1').find('input:text'))){
   if(allIsValid()){
     disable(button,false);
    }
  }else{
   $(this).parents('.row').removeClass('ok').addClass('error');
   disable(button,true);
  }
 });
//для 2 телефона
$('.tel2 span').keyup(function(e){
  var curr_el=$(document.activeElement),
   curr_value=curr_el.val(),
   max_len=parseInt(curr_el.attr('maxlength'));
  curr_el.val(curr_value.replace(/[^0-9]+/,''))
  curr_value=curr_el.val();
  if(curr_value.match('[0-9]{'+max_len+'}')){
   curr_el.parent().next().find('input').focus();
   if(checkSumm(curr_el.parents('.tel2').find('input:text'))){
    $(this).parents('.row').removeClass('error').addClass('ok');
    if(allIsValid()){
     disable(button,false);
    }
   }
  }
  if(checkSumm(curr_el.parents('.tel2').find('input:text'))){
   if(allIsValid()){
     disable(button,false);
    }
  }else{
   $(this).parents('.row').removeClass('ok').addClass('error');
   disable(button,true);
  }
 });
И интуитивно я понимаю, что сравнение двух полученных из инпута номеров должно проходить как-то так

Код:
//создаешь какое-нибудь поле
<input type="password" value="" id="text1">
//создаешь 2ое поле
<input type="password" value="" id="text2">
<script>
var _tel1 = document.getElementById('tel1').value
var _tel2 = document.getElementById('tel2').value
function prov()
if(_tel1==_tel2) {
то будет исполнятся твое действие...
}
else {
то будет исполнятся действие,при котором телефоны будут не равны
}
}
</script>
Однако, инпуты у меня немного другие...а так как знания ещё не очень большие в Яваскрипте, синтаксисе языка и т.п. Рассчитываю на ваш опыт.
Ответить с цитированием
  #2 (permalink)  
Старый 13.08.2012, 16:29
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

drac0Sha,
Выложите
1. HTML код инпутов -
2. Варианты Правильных(неправильных) вводимых строк
3. Опишите ситуацию: что с чем сравнивается, по-какому событию и что надо вывести
Ответить с цитированием
  #3 (permalink)  
Старый 13.08.2012, 16:59
Новичок на форуме
Отправить личное сообщение для drac0Sha Посмотреть профиль Найти все сообщения от drac0Sha
 
Регистрация: 05.03.2012
Сообщений: 9

1. HTML код инпутов
Код:
<div class="data-form">
<div class="row">
<label for="alt11">Телефон 1:</label>
<div class="holder-row">
	<div class="input-text tel-wrap tel">
	<span>
	<label>+7 (<input type="text" maxlength="3" id="phoneSource1" />) </label>
	<label>  <input type="text" maxlength="3" id="phoneSource2"/></label>
	<label> - <input type="text" maxlength="2" id="phoneSource3"/></label>
	<label> - <input type="text" maxlength="2" id="phoneSource4"/></label>
	</span>
	</div>
	<span class="ok-holder">&nbsp;</span>
	<span class="error-holder">Телефон<br />введен<br />не верно</span>
	</div>
	</div>
	<div class="row">
	<label for="alt12">Телефон 2:</label>
	<div class="holder-row">
	<div class="input-text tel-wrap tel">
	<span>
	<label>+7 (<input type="text" maxlength="3" id="phoneDestination1"/>) </label>
	<label>  <input type="text" maxlength="3"  id="phoneDestination2"/></label>
	<label> - <input type="text" maxlength="2"  id="phoneDestination3"/></label>
	<label> - <input type="text" maxlength="2"  id="phoneDestination4"/></label>
	</span>
	</div>
	<span class="ok-holder">&nbsp;</span>
	<span class="error-holder">Телефон<br />введен<br />не верно</span>
	</div>
	</div>
2. Варианты правильных и неправильных:
правильные: +79035555555
неправильные: 89035555555
Это у меня реализовано)

3. Ситуацию в том, что у меня идёт ввод пользователем двух телефонов (своего и чужого), правильный ввод или нет (см.п.2) работает, то есть остаётся только проверить не ввёл ли пользователь один и тот же номер (свой или чужой) в два поля.
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2012, 16:31
Новичок на форуме
Отправить личное сообщение для drac0Sha Посмотреть профиль Найти все сообщения от drac0Sha
 
Регистрация: 05.03.2012
Сообщений: 9

выложил)
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2012, 19:57
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

drac0Sha,
Завтра - Гляну
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2012, 20:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Пока ничего не делал - Есть Вопросы:
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>



<div class="data-form">
  <div class="row">
	<label for="alt11">Телефон 1:</label>
	<div class="holder-row">
		<div class="input-text tel-wrap tel">
			<span>
				<label>+7 (<input type="text" maxlength="3" id="phoneSource1" />) </label>
				<label>  <input type="text" maxlength="3" id="phoneSource2"/></label>
				<label> - <input type="text" maxlength="2" id="phoneSource3"/></label>
				<label> - <input type="text" maxlength="2" id="phoneSource4"/></label>
			</span>
		</div>

		<span class="ok-holder">&nbsp;</span>
		<span class="error-holder">Телефон<br />введен<br />не верно</span>
	</div>
  </div>

  <div class="row">
	<label for="alt12">Телефон 2:</label>
	<div class="holder-row">
		<div class="input-text tel-wrap tel">
			<span>
				<label>+7 (<input type="text" maxlength="3" id="phoneDestination1"/>) </label>
				<label>  <input type="text" maxlength="3"  id="phoneDestination2"/></label>
				<label> - <input type="text" maxlength="2"  id="phoneDestination3"/></label>
				<label> - <input type="text" maxlength="2"  id="phoneDestination4"/></label>
			</span>
	</div>
	<span class="ok-holder">&nbsp;</span>
	<span class="error-holder">Телефон<br />введен<br />не верно</span>
  </div>

</div>


<script type="text/javascript">

	$('.tel-wrap.tel:first span input').keyup(function(){
	  var curr_el=$(this),
	  curr_value=curr_el.val(),
	  max_len=parseInt(curr_el.attr('maxlength'));
	  curr_el.val(curr_value.replace(/[^0-9]+/,''))

	  curr_value=curr_el.val();
	  if(curr_value.match('[0-9]{'+max_len+'}')){

	     curr_el.parent().next().find('input').focus();

	  	if(checkSumm(curr_el.parents('.tel1').find('input:text'))){

	     	   $(this).parents('.row').removeClass('error').addClass('ok');

	  		if(allIsValid()){

	     	    	      disable(button,false);

	        	}
   	  	}
  	  }

	if(checkSumm(curr_el.parents('.tel1').find('input:text'))){
	  if(allIsValid()){
	    disable(button,false);
	  }
	}else{
	   $(this).parents('.row').removeClass('ok').addClass('error');
	   disable(button,true);
	}
});

//для 2 телефона
	$('.tel-wrap.tel:last span input').keyup(function(){//alert("B")
	var curr_el=$(this),
	curr_value=curr_el.val(),
	max_len=parseInt(curr_el.attr('maxlength'));
	curr_el.val(curr_value.replace(/[^0-9]+/,''))
	curr_value=curr_el.val();
	if(curr_value.match('[0-9]{'+max_len+'}')){
	  curr_el.parent().next().find('input').focus();
	    if(checkSumm(curr_el.parents('.tel2').find('input:text'))){
	       $(this).parents('.row').removeClass('error').addClass('ok');
	          if(allIsValid()){
		     disable(button,false);
	     	  }
	    }
	}

	if(checkSumm(curr_el.parents('.tel2').find('input:text'))){
	  if(allIsValid()){
	     disable(button,false);
	  }
	}else{
	  $(this).parents('.row').removeClass('ok').addClass('error');
	  disable(button,true);
	}
});

</script>

Последний раз редактировалось Deff, 15.08.2012 в 20:58.
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2012, 20:55
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

1. Нафига столько проверок ?
Почему - не провеять заполнение - когда все поля одного телефона заполнены ? - тогда и проверять ?
'Телефон введен не верно' - в этом случае лучше заменить на аlert.

2. Если так подойдёт - завтра сделаю

Да и как правильно - два телефона - одинаковых - или разных ?

Последний раз редактировалось Deff, 15.08.2012 в 21:02.
Ответить с цитированием
  #8 (permalink)  
Старый 15.08.2012, 21:01
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Тут все просто, вроде. В чужой код лезть не буду, так как я сам новичек. Но вроде так, не воспринимайте мой пример верьез:
<!DOCTYPE html>
<html>
<head>
  <title>ddd</title>
</head>
<body>
  <div class="data-form">
<div class="row">
<label for="alt11">Телефон 1:</label>
<div class="holder-row">
  <div class="input-text tel-wrap tel">
  <span>
  <label>+7 (<input type="text" maxlength="3" id="phoneSource1" />) </label>
  <label>  <input type="text" maxlength="3" id="phoneSource2"/></label>
  <label> - <input type="text" maxlength="2" id="phoneSource3"/></label>
  <label> - <input type="text" maxlength="2" id="phoneSource4"/></label>
  </span>
  </div>
  <span class="ok-holder">&nbsp;</span>
  <span class="error-holder">Телефон<br />введен<br />не верно</span>
  </div>
  </div>
  <div class="row">
  <label for="alt12">Телефон 2:</label>
  <div class="holder-row">
  <div class="input-text tel-wrap tel">
  <span>
  <label>+7 (<input type="text" maxlength="3" id="phoneDestination1"/>) </label>
  <label>  <input type="text" maxlength="3"  id="phoneDestination2"/></label>
  <label> - <input type="text" maxlength="2"  id="phoneDestination3"/></label>
  <label> - <input type="text" maxlength="2"  id="phoneDestination4"/></label>
  </span>
  </div>
  <span class="ok-holder">&nbsp;</span>
  <span class="error-holder">Телефон<br />введен<br />не верно</span>
  </div>
  <input type="button" value="Проверить" onclick="checks()" />
  </div>
<script type="text/javascript">
function checks() {
  var tel11 = document.getElementById('phoneSource1').value;
  var tel12 = document.getElementById('phoneSource2').value;
  var tel13 = document.getElementById('phoneSource3').value;
  var tel14 = document.getElementById('phoneSource4').value;
  var phoneSource = tel11 + tel12 + tel13 + tel14;
  var tel21 = document.getElementById('phoneDestination1').value;
  var tel22 = document.getElementById('phoneDestination2').value;
  var tel23 = document.getElementById('phoneDestination3').value;
  var tel24 = document.getElementById('phoneDestination4').value;
  var phoneDestination = tel21 + tel22 + tel23 + tel24;
  if (phoneSource == phoneDestination) {
    alert("Не пытайся схитрить, падла!")
  }
  else {
    alert("Все нормуль. ")
  }
}
</script>
</body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 15.08.2012, 22:18
Новичок на форуме
Отправить личное сообщение для drac0Sha Посмотреть профиль Найти все сообщения от drac0Sha
 
Регистрация: 05.03.2012
Сообщений: 9

PashPP, спасибо за ответ, завтра попробую...сейчас уже не у компьютера
Ответить с цитированием
  #10 (permalink)  
Старый 15.08.2012, 22:22
Новичок на форуме
Отправить личное сообщение для drac0Sha Посмотреть профиль Найти все сообщения от drac0Sha
 
Регистрация: 05.03.2012
Сообщений: 9

Сообщение от Deff Посмотреть сообщение
1. Нафига столько проверок ?
Почему - не провеять заполнение - когда все поля одного телефона заполнены ? - тогда и проверять ?
'Телефон введен не верно' - в этом случае лучше заменить на аlert.

2. Если так подойдёт - завтра сделаю

Да и как правильно - два телефона - одинаковых - или разных ?
Столько проверок согласен не совсем логичный выбор, но просто мне для красоты ввода на странице так было удобнее)
"Телефон введен не верно" работает (это проверка символов, чтобы только числа вводили"

Проверку хочется сделать именно на тот случай, когда два номера введеные 1 и 2 если ОДИНАКОВЫЕ, то выводило ошибку, а если разные то всё нормально.вот)

если телефон правильно набрал, то там напротив поля ввода появляется галочка, а если какая то ошибка то телефон введен неверно, так вот сейчас там если два телефон ввести одинаковые то напротив двух телефонов покажутся галочки ( все нормально),а нужно дописать в том коде чтобы напротив одного показало галочку, а напротив второго написало телефон введен неверно

надеюсь, я понятно описал проблема)) Спасибо большое за отзывчивость)

Последний раз редактировалось drac0Sha, 15.08.2012 в 22:32.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 16:42
аналог двух строк кода создания Range-объкта для ie syegorius Events/DOM/Window 2 13.01.2012 15:14
Сравнение строк в javaskript Thezzz Общие вопросы Javascript 21 22.06.2011 22:42
сравнение строк в процентах doromones Общие вопросы Javascript 3 19.07.2010 19:48
Сравнение строк по алфавиту Alex VoDevil Общие вопросы Javascript 6 25.02.2010 02:04