Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сравнение двух строк (https://javascript.ru/forum/misc/30723-sravnenie-dvukh-strok.html)

Deff 15.08.2012 22:31

Цитата:

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

Попробую

Deff 16.08.2012 00:09

<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);
	}
});

function TestSowpadNumber (){
   if(validNumb1 && validNumb2 && tel1==tel2){
      alert("Номера телефонов совпадают, что недопускается!")
   }
}


  var tel1, validNumb1=false;
	$('.tel-wrap.tel:first span input').change(function(){
	   tel1 = '';
	   $(this).parents('span').find('input').each( function() {

	      tel1+=$(this).val();

	   });

	  tel1=parseInt(tel1)||null;
	  if(tel1<100000000)validNumb1=false;
	  else validNumb1=true; //alert(tel1);
	  TestSowpadNumber ()

	});


  var tel2, validNumb2=false;
	$('.tel-wrap.tel:last span input').change(function(){
	   tel2 = '';
	   $(this).parents('span').find('input').each( function() {

	      tel2+=$(this).val();

	   });

	  tel2=parseInt(tel2)||null;
	  if(tel2<100000000)validNumb2=false;
	  else validNumb2=true;
	  TestSowpadNumber ()

	});

</script>

drac0Sha 17.08.2012 16:22

а если попробовать не алерт, а именно

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

это сложно!?



но очень Вам благодарен!!

Serjuk 20.08.2012 17:05

Может надо заменить
alert("Номера телефонов совпадают, что недопускается!")
на
disable(button,false);
?

drac0Sha 20.08.2012 17:44

попробовал, нет

Deff 20.08.2012 17:50

Serjuk,
Делаю - не быстро - (*появляются новые элементы - а я уже не помню реализацию

Deff 20.08.2012 18:26

<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);
	}
});

var TrueTel='<input id="F1" type="checkbox" maxlength="3" checked disabled/>';
var FalseTel='<img id="F2" src="http://s1.uploads.ru/i/ZgoP7.png" width="33" style="margin:0 0 -10px -16px;"/>';

function SetStatRead(select,str,disable,clear){
 $(select).parents('span').find("#F1,#F2").remove();
 if(disable){
   	   $(select).parents('label').find('input').each( function() {
		$(this).attr("disabled","true")
	   });
 }
 if(clear){
   	   $(select).parents('label').find('input').each( function() {
		$(this).val("")
	   });
 }
  $(select).parents('span').prepend(str);
}

function TestSowpadNumber (){
   if(validNumb1 && validNumb2){
      SetStatRead('.tel-wrap.tel:first span input',TrueTel,true,false)
      if(tel1==tel2){
      SetStatRead('.tel-wrap.tel:last span input',FalseTel,false,true)
         alert("Номера телефонов совпадают, что недопускается!");
      }  else  SetStatRead('.tel-wrap.tel:last span input',TrueTel,true,false)
   }   
}


  var tel1, validNumb1=false;
	$('.tel-wrap.tel:first span input').change(function(){
	   tel1 = '';
	   $(this).parents('span').find('input').each( function() {

	      tel1+=$(this).val();

	   });

	  tel1=parseInt(tel1)||null;
	  if(tel1<1000000000)validNumb1=false;
	  else validNumb1=true; //alert(tel1);
	  TestSowpadNumber ()

	});


  var tel2, validNumb2=false;
	$('.tel-wrap.tel:last span input').change(function(){
	   tel2 = '';
	   $(this).parents('span').find('input').each( function() {

	      tel2+=$(this).val();

	   });

	  tel2=parseInt(tel2)||null;
	  if(tel2<1000000000)validNumb2=false;
	  else validNumb2=true;
	  TestSowpadNumber ()

	});

</script>

Поправил

drac0Sha 20.08.2012 19:45

Спасибо большое!!! всё работает)


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