Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 文本框键控事件无法正常工作_Javascript_Jquery_Textbox_Keyup - Fatal编程技术网

Javascript 文本框键控事件无法正常工作

Javascript 文本框键控事件无法正常工作,javascript,jquery,textbox,keyup,Javascript,Jquery,Textbox,Keyup,我使用以下代码基于其他textbox txtQuantity更新一个textbox值TXTNITPRICE,这两个值都可以动态生成 //update unitprice based on quantity of product and tax applied $('input').live('keyup', function () { var inputId = $(this).attr('id'); //get textbox txtQuantity id

我使用以下代码基于其他textbox txtQuantity更新一个textbox值TXTNITPRICE,这两个值都可以动态生成

    //update unitprice based on quantity of product and tax applied
    $('input').live('keyup', function () {
        var inputId = $(this).attr('id');  //get textbox txtQuantity id
        var rowNum = parseInt(/txtQuantity(\d+)/.exec(inputId)[1], 10); //get row id
        var productValue = $("#ddlProduct" + rowNum).val();
        var taxValue = $("#ddlTax" + rowNum).val();
        var unitPriceValue = $("#txtUnitPrice" + rowNum).val();
        var quantityValue = $("#txtQuantity" + rowNum).val();


        if ((quantityValue != " ") && (quantityValue > 0)) {
            $("#txtUnitPrice" + rowNum).val(unitPriceValue * quantityValue);
        }
        else {
            $("#txtUnitPrice" + rowNum).val(unitPriceValue);
        }

    }); 

现在,上面代码中出现的问题是,当我甚至在文本框txtQuantity中向前或向后移动光标时,txtnitPrice的值正在发生变化,因为这个事件“keyup”正在触发,因此整个代码将使用现有的txtnitPrice值执行,并再次将其与我不知道的现有txtQuantity相乘想请任何人帮我解决这个问题。谢谢

只需添加一个复选框即可忽略光标移动,如下所示

$('input').live('keyup', function (e) {
    if([37, 38, 39, 40].indexOf(e.which)){
        return false;//do nothing because the cursor keys have been pressed
    }
    //the rest of your code
});

代码每次都在执行,但值每次都在更改(在您不更改文本框的值之前,它应该保持不变),我得到了您不想要的东西,但您想要什么?