При условии....
вот в на этом примере..просто здесь и так всего много(ну по моим меркам) поэтому боюсь запутатся...
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;
//
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.substring(0,21). toLocaleUpperCase();
}
}
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>
<SELECT name=xxx id=xxx>
<OPTION >1</OPTION>
<OPTION>2</OPTION>
<OPTION>3</OPTION>
<OPTION>4</OPTION>
</SELECT>
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="">
вот например при выборе значения 1 в списке xxx (1,2,3,4) +при выборе значения male в списке select(male feemale) в текстовом поле писалось соответственно Mr. (или же Ms. если выбранно female)....и это значение невозможно было бы удалить(только Ms/Ms остольную часть можно редактировать)...а при выборе другого значения например 2 слово Mr/ms Тоже писалось но его можно было спокойно редактировать...
Такая конетель.. просто в некоторых случаях обязательно чтобы обращение Ms/Ms ыло а в других случаях по желанию...
например при выборе твоего значения 1 (чтобы обращение было обязательным), ты просто ставишь disabled текстового поля в true и пишешь сам туда что угодно, а пользователь это отредактировать не сможет...
а при выборе значения 2 (чтобы обращения не было), в функции, которая генерит итоговое значение поля (обращение + имя + фамилия), просто убираешь вставку Mr./Ms.
это будет проще, чем придумывать как сделать так, чтобы часть одного текстового поля редактировалась, а часть нет....
PS: ну или еще вариант, вынести обращение (Mr./Ms.) в отдельное текстовое поле при возможности его редактирования, а в противном случае, просто написать его.... эммм..... в какой-нить тэг наподобие <span> задать ему id и класть (или не класть) туда значение выбранного обращения.
фух... вроде всё ;)
<SELECT onchange="OnListSelect(value)" name=select id=sex>
[/HTML]
Вот насчёт этой строчки - разве могут одному и тому же элементу присваиваться разные идентификаторы "name" и "id"? или могут?
id - можно юзать JavaScript'ом (getDocumentById) и CSS'ом (.class #id)
name - JavaScript'ом и служит для определения данных в этом поле формы, по имени... ну собссна больше и никак (при передаче запроса) (php: $_POST["name"], $_GET["name"]; например) =)))))))))
да и вообще, странный вопрос )
id - можно юзать JavaScript'ом (getDocumentById)
document.getElementById :)
пожалуй уйду я на несколько дней..... траблы.......................................
[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;
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.substring(0,21). toLocaleUpperCase();
}
}
function OnListSelect(list) {
if(list==0) {
document.getElementById('q').value=document.getElementById('s').value +" "+document.getElementById('s2').value;
document.getElementById('status').value= mr;
}
if(list==1) {
document.getElementById('q').value=document.getElementById('s').value +" "+document.getElementById('s2').value;
document.getElementById('status').value=ms;
}
MakeResult();
}
function OnTextChange() {
var list = document.getElementById('sex').value;
OnListSelect(list);
}
function setStatus(stat)
{
switch(Number(stat))
{
case 2:
document.getElementById('status').disabled = true;
break;
default:
document.getElementById('status').disabled = false;
break;
}
}
</script>
<SELECT name=xxx id=xxx onChange="setStatus(this.value);">
<OPTION value=1>1</OPTION>
<OPTION value=2>2</OPTION>
</SELECT>
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 type="text" id="status" value="" size=2 maxlength="4" style="border-right: 0px;"><input name="myInput" type="text" size=21 id="q" value="" style="border-left: 0px;">[/HTML]
[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;
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.substring(0,21);
}
}
function OnListSelect(list) {
if(list==0) {
document.getElementById('q').value=document.getElementById('s').value +" "+document.getElementById('s2').value;
document.getElementById('status').value= mr;
}
if(list==1) {
document.getElementById('q').value=document.getElementById('s').value +" "+document.getElementById('s2').value;
document.getElementById('status').value=ms;
}
MakeResult();
document.getElementById('q').value = document.getElementById('q').value.toLocaleUpperCase();
}
function OnTextChange() {
var list = document.getElementById('sex').value;
OnListSelect(list);
}
function setStatus(stat)
{
switch(Number(stat))
{
case 2:
document.getElementById('status').disabled = true;
break;
default:
document.getElementById('status').disabled = false;
break;
}
}
</script>
<SELECT name=xxx id=xxx onChange="setStatus(this.value);">
<OPTION value=1>1</OPTION>
<OPTION value=2>2</OPTION>
</SELECT>
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 type="text" id="status" value="" size=2 maxlength="4" style="border-right: 0px;"><input name="myInput" type="text" size=21 id="q" value="" style="border-left: 0px;">
[/html]
вроде бы так.