Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 除非手动编辑/提交,否则不会使用if语句更新值_Javascript_Jquery - Fatal编程技术网

Javascript 除非手动编辑/提交,否则不会使用if语句更新值

Javascript 除非手动编辑/提交,否则不会使用if语句更新值,javascript,jquery,Javascript,Jquery,我正在使用滑块更新两个文本框的值,滑块在有限的范围内,所以它不会给出低于/高于最小值/最大值的值 当您决定手动更新框中的值时,它也会使用正确的值更新另一个框,但当您输入超出范围的值时,它会将其更新为该框中允许的最大值/最小值,但不会更新另一个框中的相关值,除非您进入该框并编辑/单击enter 当您输入超出允许范围的值时,我希望它也将另一个框更新为min/max 我知道这很混乱,但例如,在CAD框中放入50,它会将BTC更新为0.04113,但如果在CAD框中放入200,它会将其更改为允许的最大值

我正在使用滑块更新两个文本框的值,滑块在有限的范围内,所以它不会给出低于/高于最小值/最大值的值

当您决定手动更新框中的值时,它也会使用正确的值更新另一个框,但当您输入超出范围的值时,它会将其更新为该框中允许的最大值/最小值,但不会更新另一个框中的相关值,除非您进入该框并编辑/单击enter

当您输入超出允许范围的值时,我希望它也将另一个框更新为min/max

我知道这很混乱,但例如,在CAD框中放入50,它会将BTC更新为0.04113,但如果在CAD框中放入200,它会将其更改为允许的最大值,即99.99,但BTC框保持在0.16453,这是允许的0.08 BTC的两倍,并且不会更新为99.99等效值

关于如何解决这个问题有什么想法/建议吗?

jsfiddle中的js&css仅用于滑块

function bitcoinCheck(input) {
                        if (input.value < 0.002) input.value = 0.002;
                        if (input.value > 0.08) input.value = 0.08;
                    }
function cadCheck(input) {
                        if (input.value < 2) input.value = 2;
                        if (input.value >= 100) input.value = 99.99;
                    }

在调用recalc_cad或recalc_btc时更新另一个字段,这仅在keyup事件中发生,而不是在离开该字段且发生更改事件时发生。您应该在bitcoinCheck和cadCheck函数中对这些函数进行额外调用

var btcPrice=1215.60; 功能CAD2BTCAUNT{ 金额=总金额; var btc=金额/btc价格; 返回btc; } 功能btc2cadamount{ 金额=总金额; var cad=金额*btcPrice; 返回cad; } 功能recalc_cadamount{ cad=解析浮点数.value; var btc=CAD2BTCAD; document.getElementById'amount\u btc'。value=btc.toFixed5; } 函数recalc_btcamount{ var btc=parseFloatamount.value, cad=btc2cadbtc; document.getElementById'amount\u cad'。value=cad.toFixed2; } 函数位校验输入{ 如果input.value<0.002,则input.value=0.002; 如果input.value>0.08,input.value=0.08; recalc_btcinput; } 函数cadCheckinput{ 如果input.value<2,则input.value=2; 如果input.value>=100,则input.value=99.99; recalc_CADDINPUT; }
表现如预期,如果不是,请花些时间更清楚地重申问题。举一个预期和实际行为的示例。如果为CAD输入200,它会将值更新为99.99,但不会将BTC值更新为99.99等效值,它将保持在200 CAD等效值。更新值后,需要在cadCheck内调用recalc_CAD。字符串不可用numbers@Barmar,当我叫它的时候,它不起作用。哦,我应该通过输入,只是写了recalc_btc;难怪它不起作用。你的工作很漂亮!谢谢