如何保存焦点上最后一个元素的值

时间:2016-03-11 12:29:14

标签: javascript jquery

我拥有什么

我有一个订购零件的表单,您可以在键入文章代码时通过ajax显示有关零件的信息。此数据显示在表格中,接下来您可以在表格中的可用供应商之间进行选择,然后单击要选择的供应商。

在此之后,您可以选择添加更多重复此过程的部分。

我想要什么

因为当您选择添加更多部件时动态添加输入字段,我需要知道正在使用哪个输入。在正常情况下,您总是使用最后一个输入,但是您可能希望更改预先输入的文章代码,因此如果是这种情况,我想让用户选择将供应商更改为相应的输入最后一次。

我尝试了什么

我想出了一个用焦点事件选择输入的想法,问题是当输入被聚焦而且我要去桌面并点击另一个供应商时输入失去焦点而因此没有&# 39;知道在哪里放置价值。

HTML (仅限相关代码)

Article code    <input name='article_code[]' type='text' class='article_code'>
Description     <input type='text' class='article_description' name='article_description[]' value='No articlecode specified' READONLY>
Supplier    <input type='text' class='supplier_output' name='supplier_outputt[]' value='No supplier specified'  READONLY>


<table id='supplier_table' class='sortable' width='100%'>
    <THEAD>
        <tr valign='top'>
        <th width='25%'>Supplier</th>
        <th width='25%'>Mainsupplier</th>
        <th width='25%'>Price</th>
        <th width='25%'>Article code</th>
        </tr>
    </THEAD>
    <TBODY >

    </TBODY>
</table>

的JavaScript

$('#supplier_table').on('click', 'tbody tr',  function(){
    var tableData = $(this).children('td').map(function() {
        return $(this).text();
    }).get();

    var selectedSupplier = $.trim(tableData[0]);
    var supplier_val;

    if($('.article_code').is(':focus')){
        supplier_val = $(this).closest('tr').next().next().find('.supplier_output');
        $(supplier_val).val(selectedSupplier);

    } else {
        $('.supplier_output').last().val(selectedSupplier);
    }
});

所以基本上我需要将最后一个元素的值存储在焦点上。

1 个答案:

答案 0 :(得分:1)

不确定我是否正确理解了您的问题。但也许我可以帮助你从另一个方向思考。使用模糊事件。然后将最后模糊的商品代码存储在last_val变量中:

$('.article_code').on('blur', function(){ last_val = this.value; })