Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入文本的修剪值为NaN,以便进一步计算。仅限JS_Javascript - Fatal编程技术网

Javascript 输入文本的修剪值为NaN,以便进一步计算。仅限JS

Javascript 输入文本的修剪值为NaN,以便进一步计算。仅限JS,javascript,Javascript,所以我有两个输入文本字段和两个选项选择字段,货币兑换计算器。第一个输入字段和两个选择选项的值用于计算最终值 我想要实现的是,如果用户输入左输入,例如20a,修剪a或任何其他字符串,并继续计算值 非常感谢。这是我的密码: function calculusSmaller(cur1, cur2) { calculatedCurrency.value = parseFloat(currVal * (cur1 / cur2)).toFixed(2); } function calculusBi

所以我有两个输入文本字段和两个选项选择字段,货币兑换计算器。第一个输入字段和两个选择选项的值用于计算最终值

我想要实现的是,如果用户输入左输入,例如20a,修剪a或任何其他字符串,并继续计算值

非常感谢。这是我的密码:

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,可能是有用的