Събиране с JavaScript
4 отговора
333 прегледа
Събиране с JavaScript
Имам малко тъп въпрос...
Значи възможно ли е с JavaScript да събера стойностите (сбор) от две инпут полета, които съдържат не само числа. Примерно поле1 валуе="$4" + поле2 валуе="$9" и като сбор да ми даде "13". Може би трябва да взема със субстринг само числата и после с един евал... Ама полето може и да е така "2 лв." и така "$ 5". Как мога да го направя без 1000 проверки на валуето символ по символ (то не че се сещам как да стане в момента де)?
Всяка помощ ще ми е от полза!
Значи възможно ли е с JavaScript да събера стойностите (сбор) от две инпут полета, които съдържат не само числа. Примерно поле1 валуе="$4" + поле2 валуе="$9" и като сбор да ми даде "13". Може би трябва да взема със субстринг само числата и после с един евал... Ама полето може и да е така "2 лв." и така "$ 5". Как мога да го направя без 1000 проверки на валуето символ по символ (то не че се сещам как да стане в момента де)?
Всяка помощ ще ми е от полза!
Try this way
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "[линк]">
<html>
<head>
<title></title>
<script type="text/javascript">
String.prototype.getFirstNumber=function()
{
var myVal=new String(this.valueOf());
var myNum= myVal.match(/\d+/);
return myNum;
}
function sumVal(){
var first=document.getElementById("first");
var second=document.getElementById("second");
var sum=parseInt(first.value.getFirstNumber())+parseInt(second.value.getFirstNumber());
alert("The sum is "+sum);
}
</script>
<style type="text/css">
div{
text-align: center;
}
</style>
</head>
<body>
<div>
<input type="text" id="first">
<input type="text" id="second">
<input type="button" value="Calculate" onclick="sumVal()">
</div>
</body>
</html>
От неизбежното се възмущава само този, който е неразумен.
Пич,
По-елегантно решение от това едва ли ще намериш
(офф)Учещ, защо си зелен
(/офф)
(офф)Учещ, защо си зелен
А защо не просто...
var sum = parseFloat(first.value.replace(/[^\d\.]+/g, '')) + parseFloat(second.value.replace(/[^\d\.]+/g, ''));
Понеже става дума за цени доколкото видях, а те не са цели числа обикновено...
There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
Понеже става дума за цени доколкото видях, а те не са цели числа обикновено...
There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
Прав си ..
Не се бях сетил че може да са float числа.
Мен ме по-кефи със прототип, обаче. Пък е и по-късо.
Ето подбрена версия.
От неизбежното се възмущава само този, който е неразумен.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "[линк]">
<html>
<head>
<title></title>
<script type="text/javascript">
String.prototype.toFNum=function(){
return parseFloat(this.replace(/[^\d\.]+/g, ''));
}
function sumVal(){
var first=document.getElementById("first");
var second=document.getElementById("second");
var sum=first.value.toFNum()+second.value.toFNum();
alert("The sum is "+sum);
}
</script>
<style type="text/css">
div{
text-align: center;
}
</style>
</head>
<body>
<div>
<input type="text" id="first">
<input type="text" id="second">
<input type="button" value="Calculate" onclick="sumVal()">
</div>
</body>
</html>
От неизбежното се възмущава само този, който е неразумен.