Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сокрашение слов...

15K
01 февраля 2007 года
anver3
19 / / 31.01.2007
Народ вот такая вот ситуация...
1)текстовое поле 1(Имя)
2)текстовое поле 2(Фамилия)
3)текстовое поле 3(Имя + пробел + Фамилия)

При вводе информации в 1) и 2), в 3) это информация складывается (через пробел) и если полученное количество символов будет больше 21го (3 символа (Mr. или Ms.)+ пробел + Имя + пробел + Фамилия) то текст должен сокращатся следующим образом :

От значения 1)(Имя) берется только первая буква потом .(точка)а потом Фамилия, но есть несколько исключений когда будет братся первые две буквы (Sh., Ch., Kh....)

Возможно ли это организовать средствами Java Script и как бы вы мне посоветовали это сделать?
Заранее благодарен.
92
01 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
Цитата: anver3
Народ вот такая вот ситуация...
1)текстовое поле 1(Имя)
2)текстовое поле 2(Фамилия)
3)текстовое поле 3(Имя + пробел + Фамилия)

При вводе информации в 1) и 2), в 3) это информация складывается (через пробел) и если полученное количество символов будет больше 21го (3 символа (Mr. или Ms.)+ пробел + Имя + пробел + Фамилия) то текст должен сокращатся следующим образом :

От значения 1)(Имя) берется только первая буква потом .(точка)а потом Фамилия, но есть несколько исключений когда будет братся первые две буквы (Sh., Ch., Kh....)

Возможно ли это организовать средствами Java Script и как бы вы мне посоветовали это сделать?
Заранее благодарен.



да, возможно.

[html]
<script language="JavaScript">
// функция должна вернуть обрезанную/сокращенную строку
function MakeResult(name, surname, result_string) { // имя, фамилия, строка вместе с Mr./Ms.
if (result.length > 21) {
switch (name.substring(0,2)){
case "Sh":
case "Ch":
case "Kh":
name = name.substring(0,2);
break;
default:
name = name.substring(0,1);
break;
}
return result.substring(0,3) + " " + name + ". " + surname;
}
}
</script>
[/html]

НЕ ПРОВЕРЯЛ! накидал за 5 минут, поэтому если будут проблемы - пиши, времени просто нет немного..... :)

15K
01 февраля 2007 года
anver3
19 / / 31.01.2007
Спосибо большое ты мне несомненно очень помог...только я незнаю насколько удобно просить об этом, но немог бы ты написать это чуть подробней...вот сама форма как к ней применить это...у меня просто неполучается...

<script>
var mr="Mr.";
var ms="Ms.";

function f(list) {

if(list==0) {
document.getElementById('q').value=mr+" "+document.getElementById('s').value +" "+document.getElementById('s2').value;
}

if(list==1) {
document.getElementById('q').value=ms+" "+document.getElementById('s').value +" "+document.getElementById('s2').value;
}
}

function sq()
{
var list = document.getElementById('sex').value;
f(list);
}
</script>

Name<INPUT id=s onchange=sq(value)>
Surname<INPUT id=s2 onchange=sq(value)>

<SELECT onchange=f(value) name=select id=sex>
<OPTION value=0 selected>male</OPTION>
<OPTION value=1>female</OPTION>
</SELECT>

<input name="myInput" type="text" id="q" value="" maxlength="21">


В любом случае большое спосибо...
92
01 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
Цитата: anver3
Спосибо большое ты мне несомненно очень помог...только я незнаю насколько удобно просить об этом, но немог бы ты написать это чуть подробней...вот сама форма как к ней применить это...у меня просто неполучается...

........................

В любом случае большое спосибо...




ну, давай начнем с того, что код нужно заключать в теги, то есть форматиру пжалста свои сообщения ) для того редактор и сделан ;)

а применить... хм... ну вот так например....

[html]

<script language="Javascript">
var mr="Mr.";
var ms="Ms.";

function MakeResult() {
var result_string = document.getElementById('q').value;
var name = document.getElementById('s').value;
var surname = document.getElementById('s2').value;
alert(result_string+" - "+result_string.length);
//
if (result_string.length > 21) {
switch (name.substring(0,2)){
case "Sh":
case "Ch":
case "Kh":
name = name.substring(0,2);
break;
default:
name = name.substring(0,1);
break;
}
result_string = result_string.substring(0,3) + " " + name + ". " + surname;
document.getElementById('q').value = result_string; // или result_string.substring(0,21); - это если все-таки надо обрезать всю строку до 21го символа
}
}

function OnListSelect(list) {
if(list==0) {
document.getElementById('q').value=mr+" "+document.getElementById('s').value +" "+document.getElementById('s2').value;
}

if(list==1) {
document.getElementById('q').value=ms+" "+document.getElementById('s').value +" "+document.getElementById('s2').value;
}
MakeResult();
}

function OnTextChange() {
var list = document.getElementById('sex').value;
OnListSelect(list);
}
</script>

Name<INPUT id="s" onchange="OnTextChange()">
Surname<INPUT id="s2" onchange="OnTextChange()">

<SELECT onchange="OnListSelect(value)" name=select id=sex>
<OPTION value=0 selected>male</OPTION>
<OPTION value=1>female</OPTION>
</SELECT>

<input name="myInput" type="text" size=21 id="q" value="">

[/html]

15K
01 февраля 2007 года
anver3
19 / / 31.01.2007
Спосибо большое....и впредь обязуюсь писать код только в теге....(CODD)....)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог