用户输入后,无法使用jQuery更改文本输入

时间:2016-08-04 16:44:08

标签: javascript jquery

我有这张桌子: enter image description here

当用户选择WorkCentre时,会发送一个请求以获取该工作中心的默认持续时间,然后将此值插入相应的字段中。但是用户可能希望指定不同的持续时间。 仅当用户未进行手动更改时,持续时间的自动更新才有效。因此,如果我要在最后一行的持续时间字段中输入5,那么即使我更改了工作中心,它也会卡在5上。

继承我的代码:

$(document).on('change', 'select.form-control', function() {
    var WorkCentre = $(this).val();
    var i = $(this).attr('row-number');
    SetDuration(WorkCentre, i);
});

$(document).on('change', '.duration', function() {
    console.log('change');
    UpdateDates();
});

function SetDuration(WorkCentre, i) {
    $.get("/getDuration", {'WorkCentre' : WorkCentre}, function(data){
    var duration = data;
    $('input[name="Ops['+i+'][Duration]"]').val(duration);

    });
}

如果用户选择工作中心,将持续时间从默认值更改为自定义值,但随后确定他们选择了错误的工作中心并选择了新工作中心,则新的默认持续时间不会更新

你可以在这里看到: https://www.youtube.com/watch?v=RFxwYlH7df8 一旦我手动更改持续时间,它就会被卡住。

1 个答案:

答案 0 :(得分:0)

问题是下一行:(您引用的是选择元素,您应该引用所选项目):

var i = $(this).attr('row-number');//No return data

更改:

var i = $(this).find("option:selected").attr('row-number');//Return value of attribute

结果: https://jsfiddle.net/cmedina/4pkdros9/1/