Javascript 输入文本的修剪值为NaN,以便进一步计算。仅限JS
所以我有两个输入文本字段和两个选项选择字段,货币兑换计算器。第一个输入字段和两个选择选项的值用于计算最终值 我想要实现的是,如果用户输入左输入,例如20a,修剪a或任何其他字符串,并继续计算值 非常感谢。这是我的密码:Javascript 输入文本的修剪值为NaN,以便进一步计算。仅限JS,javascript,Javascript,所以我有两个输入文本字段和两个选项选择字段,货币兑换计算器。第一个输入字段和两个选择选项的值用于计算最终值 我想要实现的是,如果用户输入左输入,例如20a,修剪a或任何其他字符串,并继续计算值 非常感谢。这是我的密码: function calculusSmaller(cur1, cur2) { calculatedCurrency.value = parseFloat(currVal * (cur1 / cur2)).toFixed(2); } function calculusBi
function calculusSmaller(cur1, cur2) {
calculatedCurrency.value = parseFloat(currVal * (cur1 / cur2)).toFixed(2);
}
function calculusBiger(cur1,cur2) {
calculatedCurrency.value = parseFloat(currVal * (cur1 * cur2)).toFixed(2);
}
//adjusting values if empty or NaN
if (!isNaN(placeholderCurrency.value)) {
placeholderCurrency.parentNode.removeAttribute('data-error');
}else {
//HERE is the code needed, trimming the String.
placeholderCurrency.parentNode.setAttribute('data-error', 'Please enter a number');
mainCurrency();
}
if (placeholderCurrency.value == "") {
resetValues();
}
function mainCurrency(var1, var2) {
var1 = firstValue;
var2 = secondValue;
switch(var1 + "|" + var2) {
case "usd|rsd":
calculusBiger(usd,rsd);
break;
case "eur|rsd":
calculusBiger(eur,rsd);
break;
case "rsd|usd":
calculusSmaller(rsd,usd);
break;
case "rsd|eur":
calculusSmaller(rsd,eur);
break;
case "eur|usd":
calculusSmaller(eur,usd);
break;
case "usd|eur":
calculusSmaller(usd,eur);
break;
default:
resetValues();
}
console.log('test');
}
mainCurrency();
以下是HTML:
<select name="selectedCurrency">
<option class="" data="0" value="rsd">Rsd</option>
<option class="" data = "2" value="eur" selected="selected" >Eur</option>
<option class="" data = "1" value="usd" >Usd</option>
</select>
<input value="1" type="text" name="placeholder-currency">
<select name="currentCurrency">
<option class="" data="0" selected="selected" value="rsd">Rsd</option>
<option class="" data="2" value="eur">Eur</option>
<option class="" data="1" value="usd">Usd</option>
</select>
<input type="text" value="1" name="calculated-currency">
下面是一个使用onkeypress的示例 区署 欧元 美元 区署 欧元 美元 函数计算器SmallerCur1,cur2{ calculatedCurrency.value=parseFloatcurrVal*cur1/cur2.toFixed2; } 函数计算器bigercur1,cur2{ calculatedCurrency.value=parseFloatcurrVal*cur1*cur2.toFixed2; } //调整值(如果为空或NaN) 如果isnancurrency.value{ placeholderCurrency.parentNode.removeAttribute'data-error'; }否则{ //这是需要的代码,修剪字符串。 placeholderCurrency.parentNode.setAttribute'data-error','请输入一个数字'; 主要货币; } 如果占位符currency.value=={ 重置价值观; } 函数mainCurrencyvar1、var2{ var1=第一个值; var2=第二个值; 开关var1+|+var2{ 案例usd | rsd: CalculusbigerSD,rsd; 打破 案例欧元| rsd: 加尔各路斯比格雷尔,rsd; 打破 案例rsd |美元: 计算标准差,美元; 打破 案例rsd |欧元: 计算单位:欧元; 打破 案例欧元|美元: 计算单位:美元; 打破 案例美元|欧元: 计算单位:欧元; 打破 违约: 重置价值观; } console.log'test'; } 函数是数字无关的{ 事件=事件?事件:window.event; var charCode=event.which?event.which:event.keyCode; 如果charCode>31&&charCode<48 | | charCode>57&&charCode!==46,则返回false; 返回true; } 主要货币;
简单的正则表达式来替换任何非数字的replace/\D/g,可能是有用的