Сравнение двух строк
Здравствуйте, не очень силён в программировании, поэтому прошу о подсказке...
Дело в том, что у меня есть два поля, где я получаю строку (номер телефона) Код:
$('.tel1 span').keyup(function(e){ Код:
//создаешь какое-нибудь поле |
drac0Sha,
Выложите 1. HTML код инпутов - 2. Варианты Правильных(неправильных) вводимых строк 3. Опишите ситуацию: что с чем сравнивается, по-какому событию и что надо вывести |
1. HTML код инпутов
Код:
<div class="data-form"> правильные: +79035555555 неправильные: 89035555555 Это у меня реализовано) 3. Ситуацию в том, что у меня идёт ввод пользователем двух телефонов (своего и чужого), правильный ввод или нет (см.п.2) работает, то есть остаётся только проверить не ввёл ли пользователь один и тот же номер (свой или чужой) в два поля. |
выложил)
|
drac0Sha,
Завтра - Гляну |
Пока ничего не делал - Есть Вопросы:
<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"> </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"> </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> |
1. Нафига столько проверок ?
Почему - не провеять заполнение - когда все поля одного телефона заполнены ? - тогда и проверять ? 'Телефон введен не верно' - в этом случае лучше заменить на аlert. 2. Если так подойдёт - завтра сделаю Да и как правильно - два телефона - одинаковых - или разных ? |
Тут все просто, вроде. В чужой код лезть не буду, так как я сам новичек. Но вроде так, не воспринимайте мой пример верьез:
<!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"> </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"> </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> |
PashPP, спасибо за ответ, завтра попробую...сейчас уже не у компьютера
|
Цитата:
"Телефон введен не верно" работает (это проверка символов, чтобы только числа вводили" Проверку хочется сделать именно на тот случай, когда два номера введеные 1 и 2 если ОДИНАКОВЫЕ, то выводило ошибку, а если разные то всё нормально.вот) если телефон правильно набрал, то там напротив поля ввода появляется галочка, а если какая то ошибка то телефон введен неверно, так вот сейчас там если два телефон ввести одинаковые то напротив двух телефонов покажутся галочки ( все нормально),а нужно дописать в том коде чтобы напротив одного показало галочку, а напротив второго написало телефон введен неверно надеюсь, я понятно описал проблема)) Спасибо большое за отзывчивость) |
Цитата:
|
<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"> </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"> </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> |
а если попробовать не алерт, а именно
если телефон правильно набрал, то там напротив поля ввода появляется галочка, а если какая то ошибка то телефон введен неверно, так вот сейчас там если два телефон ввести одинаковые то напротив двух телефонов покажутся галочки ( все нормально),а нужно дописать в том коде чтобы напротив одного показало галочку, а напротив второго написало телефон введен неверно это сложно!? но очень Вам благодарен!! |
Может надо заменить
alert("Номера телефонов совпадают, что недопускается!")на disable(button,false);? |
попробовал, нет
|
Serjuk,
Делаю - не быстро - (*появляются новые элементы - а я уже не помню реализацию |
<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"> </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"> </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> Поправил |
Спасибо большое!!! всё работает)
|
Часовой пояс GMT +3, время: 02:55. |