Сокрашение слов...
1)текстовое поле 1(Имя)
2)текстовое поле 2(Фамилия)
3)текстовое поле 3(Имя + пробел + Фамилия)
При вводе информации в 1) и 2), в 3) это информация складывается (через пробел) и если полученное количество символов будет больше 21го (3 символа (Mr. или Ms.)+ пробел + Имя + пробел + Фамилия) то текст должен сокращатся следующим образом :
От значения 1)(Имя) берется только первая буква потом .(точка)а потом Фамилия, но есть несколько исключений когда будет братся первые две буквы (Sh., Ch., Kh....)
Возможно ли это организовать средствами Java Script и как бы вы мне посоветовали это сделать?
Заранее благодарен.
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 минут, поэтому если будут проблемы - пиши, времени просто нет немного..... :)
<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">
В любом случае большое спосибо...
........................
В любом случае большое спосибо...
ну, давай начнем с того, что код нужно заключать в теги, то есть форматиру пжалста свои сообщения ) для того редактор и сделан ;)
а применить... хм... ну вот так например....
[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]