Javascript 为什么在第二次单击后更新我的值

Javascript 为什么在第二次单击后更新我的值,javascript,html,Javascript,Html,这是我的“exchange转换器”页面 当我想将我的课程从销售改为购买,然后单击按钮购买或出售时,改变率,但输出但结果不变的字段的变化率 <html> <head> <title></title> <script src="//cdn.jsdelivr.net/jquery/2.1.1/jquery.min.js"></script> </head> <body> <

这是我的“exchange转换器”页面 当我想将我的课程从销售改为购买,然后单击按钮购买或出售时,改变率,但输出但结果不变的字段的变化率

<html>

<head>
    <title></title>
    <script src="//cdn.jsdelivr.net/jquery/2.1.1/jquery.min.js"></script>
</head>

<body>

    <script>
        function fn_cross(c) {
            switch (c) {}
        }

        $(document).ready(function() {
            buyCours();
        });

        function changeCourse(buttonValue) {
            if (buttonValue == ("buyUAH")) {
                buyCours();
            } else {
                sellCours();
            }
        }

        function buyCours() {
            var myData = {
                "operation": "changeCourse",
                "exchangeCall": "buy"
            };
            $.ajax({
                type: "GET",
                url: "/ConventerServlet",
                data: {
                    jsonData: JSON.stringify(myData)
                },
                dataType: "json",

                //if received a response from the server
                success: function(data) {
                    document.getElementById('exchangeUSD').value = data.exchangeUSD;
                    document.getElementById('exchangeRUB').value = data.exchangeRUB;
                    document.getElementById('exchangeEUR').value = data.exchangeEUR;
                }
            });
            count($("#inputValue").val())
        }

        function sellCours() {
            var myData = {
                "operation": "changeCourse",
                "exchangeCall": "sell"
            };
            $.ajax({
                type: "GET",
                url: "/ConventerServlet",
                data: {
                    jsonData: JSON.stringify(myData)
                },
                dataType: "json",

                //if received a response from the server
                success: function(data) {

                    document.getElementById('exchangeUSD').value = data.exchangeUSD;
                    document.getElementById('exchangeRUB').value = data.exchangeRUB;
                    document.getElementById('exchangeEUR').value = data.exchangeEUR
                }
            });
            count($("#inputValue").val())
        }

        function isNumberKey(evt) {
            var charCode = (evt.which) ? evt.which : event.keyCode
            if (charCode > 31 && (charCode != 46 && charCode != 44 && (charCode < 48 || charCode > 57)))
                return false;
            return true;
        }

        function count(inputValue) {

            console.log(inputValue);
            if (inputValue != "") {
                document.getElementById("conventUSD").value = ($("#exchangeUSD").val() * inputValue);
                document.getElementById("conventEUR").value = ($("#exchangeEUR").val() * inputValue);
                document.getElementById("conventRUB").value = ($("#exchangeRUB").val() * inputValue);
            } else {
                var defaultValue = "0.00";
                document.getElementById("conventUSD").value = defaultValue;
                document.getElementById("conventEUR").value = defaultValue;
                document.getElementById("conventRUB").value = defaultValue;
            }
        }
    </script>
    <div class="USD">
        <h2 style="text-align: center">UAH</h2> I want
        <input type="button" id="buyUAH" onclick="changeCourse(this.id)" value="Buy">

        <input type="button" id="sellUAH" onclick="changeCourse(this.id)" value="Sell">


        <label for="inputValue"></label>
        <input type="text" value="0.00" onkeypress="return isNumberKey(event)" onkeyup="count(this.value)" onfocus="if (this.value == '0.00') this.value='';" onblur="if (this.value == '') {this.value = '0.00'; }" id="inputValue" style="width: 100px;margin-bottom: 30px">
        <select id="fn_c1" onchange="fn_cross(this.value)">
            <option selected="" value="840">USD</option>
            <option value="978">EUR</option>
            <option value="643">RUB</option>
            <option value="1">UAH</option>
        </select>
        <br/>Result
        <br/>
        <li>
            <input type="text" readonly value="0.00" onblur="if (this.value == '') {this.value = '0.00'; }" id="conventUSD"> USD
            <input style="width: 50px" readonly id="exchangeUSD">
        </li>
        <li>
            <input type="text" readonly value="0.00" onblur="if (this.value == '') {this.value = '0.00'; }" id="conventRUB"> RUB
            <input style="width: 50px" readonly id="exchangeRUB">
        </li>
        <li>
            <input type="text" readonly value="0.00" onblur="if (this.value == '') {this.value = '0.00'; }" id="conventEUR"> EUR
            <input style="width: 50px" readonly id="exchangeEUR">
        </li>

    </div>
</body>

</html>

功能fn_交叉(c){
开关(c){}
}
$(文档).ready(函数(){
buyCours();
});
函数更改过程(按钮值){
如果(按钮值==(“buyUAH”)){
buyCours();
}否则{
sellCours();
}
}
函数buyCours(){
var myData={
“操作”:“变更课程”,
“exchangeCall”:“购买”
};
$.ajax({
键入:“获取”,
url:“/ConventerServlet”,
数据:{
jsonData:JSON.stringify(myData)
},
数据类型:“json”,
//如果收到来自服务器的响应
成功:功能(数据){
document.getElementById('exchangeUSD')。value=data.exchangeUSD;
document.getElementById('exchangeRUB')。value=data.exchangeRUB;
document.getElementById('exchangeEUR')。value=data.exchangeEUR;
}
});
计数($(“#inputValue”).val()
}
函数sellCours(){
var myData={
“操作”:“变更课程”,
“exchangeCall”:“出售”
};
$.ajax({
键入:“获取”,
url:“/ConventerServlet”,
数据:{
jsonData:JSON.stringify(myData)
},
数据类型:“json”,
//如果收到来自服务器的响应
成功:功能(数据){
document.getElementById('exchangeUSD')。value=data.exchangeUSD;
document.getElementById('exchangeRUB')。value=data.exchangeRUB;
document.getElementById('exchangeEUR')。value=data.exchangeEUR
}
});
计数($(“#inputValue”).val()
}
函数isNumberKey(evt){
var charCode=(evt.which)?evt.which:event.keyCode
如果(charCode>31&&(charCode!=46&&charCode!=44&&(charCode<48 | | charCode>57)))
返回false;
返回true;
}
函数计数(inputValue){
console.log(输入值);
如果(输入值!=“”){
document.getElementById(“conventUSD”).value=($(“#exchangeUSD”).val()*inputValue);
document.getElementById(“conventEUR”).value=($(“#exchangeEUR”).val()*inputValue);
document.getElementById(“conventRUB”).value=($(“#exchangeRUB”).val()*inputValue);
}否则{
var defaultValue=“0.00”;
document.getElementById(“conventUSD”).value=defaultValue;
document.getElementById(“conventEUR”).value=defaultValue;
document.getElementById(“ConventUrb”).value=defaultValue;
}
}
啊,我要
美元
欧元
摩擦
乌阿

结果
  • 美元
  • 摩擦
  • 欧元

  • 请帮我解决这个问题,告诉我哪里的错误和如何修复它

    我想问题出在你的ajax请求中

    在本文中,我刚刚用硬编码值替换了ajax调用,一切正常:

    // idx definition
    var idx = 0;
    ...
    document.getElementById('exchangeUSD').value = 444 + idx;
    document.getElementById('exchangeRUB').value = 444 + idx;
    document.getElementById('exchangeEUR').value = 444 + idx;
    idx++; 
    

    我希望这会有所帮助=)

    但我的值不是静态的,当按下按钮时它们会改变OK,我已经在JSFIDLE上更改了代码,所以现在每次单击值都会改变,而且一切都正常