Показать сообщение отдельно
  #1 (permalink)  
Старый 21.11.2012, 09:46
Новичок на форуме
Отправить личное сообщение для filosofer Посмотреть профиль Найти все сообщения от filosofer
 
Регистрация: 18.11.2012
Сообщений: 7

Цифры буквами! Готовый скрипт.
Вот готовый скрипт для отображения слов вместо цифр:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<script>
var cifir_ru= new Array("од","дв","три","четыр","пят","шест","сем","восем","девят");
var sotN_ru=new Array("сто","двести","триста","четыреста","пятьсот","шестьсот","семьмот","восемьсот","девятьсот");
var milion_ru=new Array("триллион","миллиард","миллион","тысяч");
var anDan_ru =new Array("","","","сорок","","","","","девяносто");

function SPR(x){
var sumprop = new SPRU(x);
document.form1.check.value=sumprop.XS
}

function SPRU(XS){
(XS>0? this.XS=sumPROPRU(Math.floor(XS),Math.round((XS-Math.floor(XS))*100)) : this.XS="Нулевое значение!" );
return this;
}

function sumPROPRU(xx,xx1){
var scet=4;
var cifR='';
var cfR='';
var oboR=new Array(0);
//==========================
	if (xx>999999999999999) { cfR="Густо!"; return cfR; }
	while(xx/1000>0){
		yy=Math.floor(xx/1000);
		delen=Math.round((xx/1000-yy)*1000);
		//-------------------------------
		sot=Math.floor(delen/100)*100;
		des=(Math.floor(delen-sot)>9?Math.floor((delen-sot)/10)*10:0);
		ed=Math.floor(delen-sot)-Math.floor((delen-sot)/10)*10;
		//-------------------------------
		forDes=(des/10==2?'а':'')
		forEd=(ed==1?'ин': (ed==2?'е':'') );
		ffD=(ed>4?'ь': (ed==1 || scet<3? (scet<3 && ed<2?'ин': (scet==3?'на': (scet<4? (ed==2?'а':( ed==4?'е':'')) :'на') ) ) : (ed==2?'а':( ed==4?'е':'') ) ) );
		forTys=(des/10==1? (scet<3?'ов':'') : (scet<3? (ed==1?'': (ed>1 && ed<5?'а':'ов') ) : (ed==1?'а': (ed>1 && ed<5?'и':'') )) );
		//===============================
			oprSot=(sotN_ru[sot/100-1]!=null?sotN_ru[sot/100-1]:'');
			oprDes=' '+(cifir_ru[des/10-1]!=null? (des/10==1?'': (des/10==4 || des/10==9?anDan_ru[des/10-1]:(des/10==2 || des/10==3?cifir_ru[des/10-1]+forDes+'дцать':cifir_ru[des/10-1]+'ьдесят') ) ) :'');
			oprEd=' '+(cifir_ru[ed-1]!=null? cifir_ru[ed-1]+(des/10==1?forEd+'надцать' : ffD ) : (des==10?'десять':'') );
			oprTys=' '+(milion_ru[scet]!=null && delen>0 ?milion_ru[scet]+forTys:'');
		//-------------------------------
		cifR=(oprSot.length>1?oprSot:'')+
			 (oprDes.length>1?oprDes:'')+
             (oprEd.length>1?oprEd:'')+
			 (oprTys.length>1?oprTys:'');
		oboR[oboR.length]=cifR;
		xx=Math.floor(xx/1000);
		scet-=1;
		if ( Math.floor(xx)<1 ) {	break;	}
	}
		oboR.reverse();
		for (i=0; i<oboR.length; i++){
			cfR+=oboR[i]+' ';
		}
		(cfR.length<3?cfR='ноль ':cfR);
		cfR+='рублей '+xx1+' копеек';
		return cfR.replace('  ',' ').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
</script>
</head>
<body>
<form name=form1 onsubmit="SPR(document.form1.summ.value); return false;">
<table width=100% >
<tr><td align=center valign=middle>
<h1>Введите сумму</h1>
<br><br>
<input name=summ type=text value="5"> 
<br><br>
<input type=button name=ru value='    Показать    ' onclick="SPR(document.form1.summ.value)">
<br>
<br>
<input name=check type=text> 
</form>
</table>
</body>
</html>

Скрипт написан не мной, да и от куда он у меня взялся, тоже не могу припомнить... Вопрос состоит в следующем:
Как сделать выполнение скрипта без кнопки?
Например:
<html>
<head>
<script>
..... // здесь сам скрипт
</script>
</head>
<body>
<input name=summ type=text value="5"> <!-- Здесь вносится значение -->
<span id="check"> </span> <!-- Здесь выводится результат -->
</body>
</html>

Последний раз редактировалось filosofer, 21.11.2012 в 10:11.
Ответить с цитированием