2017-03-16 1 views
0

KnockoutJS 사이트를 살펴본 결과이를 수행하는 방법을 찾지 못했습니다. 모든 녹아웃 관측치 인 입력 행 표가 있습니다. 초점이 어떤 행의 첫 번째 또는 두 번째 열에있을 때, 나는 그 값을 잡고 페이지의 다른 지점에 붙여야했습니다. 그리고 나서 다음 입력의 값을 오른쪽으로 잡고 그 값을 페이지의 다른 위치에 붙여두기를 원합니다. 복사 된 두 개의 값은 페이지의 다른 테이블로 이동합니다. 여기 knockoutjs - 입력에 초점이 맞춰지면 다른 지점에 값을 입력하십시오.

모든 녹아웃 관찰 가능한 내 첫 번째 테이블입니다 :

<tbody data-bind="foreach: items"> 
       <tr> 
        <td><input type="text" data-bind="value: itemNo, insertPress: $index, deletePress: $index, hasFocus: invalidItemNum, selected: invalidItemNum, event: { blur: function(){ $parent.checkItemNo($data, $index); } }, attr: { name: 'sellerItems[' + $index() + '].itemNo', id: 'sellerItems_' + $index() + '__itemNo', tabindex: 4 + $index()}" class="form-control" /></td> 
        <td> 
         <input type="text" data-bind="value: qty, insertPress: $index, tabEnterPress: '#tallyEntry', deletePress: $index, event: { blur: function(){ $parent.calcTotal($data); } }, attr: { name: 'sellerItems[' + $index() + '].qty', id: 'sellerItems_' + $index() + '__qty', tabindex: 5 + $index() }" class="form-control" /> 
         <input type="hidden" data-bind="value: locCode, attr: { name: 'sellerItems[' + $index() + '].locationCode', id: 'sellerItems_' + $index() + '__locationCode' }" /> 
        </td> 
        <td><input type="text" data-bind="value: price, attr: { name: 'sellerItems[' + $index() + '].retail', id: 'sellerItems_' + $index() + '__retail' }" class="form-control" readonly="readonly" tabindex="-1" /></td> 
        <td> 
         <input type="text" data-bind="value: bro, attr: { name: 'sellerItems[' + $index() + '].brocCode', id: 'sellerItems_' + $index() + '__brocCode' }" class="form-control" readonly="readonly" tabindex="-1" /> 
         <input type="hidden" data-bind="value: broID, attr: { name: 'sellerItems[' + $index() + '].brochureId', id: 'sellerItems_' + $index() + '__brochureId' }" /> 
        </td> 
        <td><input type="text" data-bind="value: desc, attr: { name: 'sellerItems[' + $index() + '].itemDesc', id: 'sellerItems_' + $index() + '__itemDesc' }" class="form-control" readonly="readonly" tabindex="-1" /></td> 
        <td><input type="text" data-bind="value: total, attr: { name: 'sellerItems[' + $index() + '].total', id: 'sellerItems_' + $index() + '__total' }" class="form-control" readonly="readonly" tabindex="-1" /></td> 
        <td><input type="text" data-bind="value: seq, attr: { name: 'sellerItems[' + $index() + '].itemRow', id: 'sellerItems_' + $index() + '__itemRow' }" class="form-control" readonly="readonly" tabindex="-1" /></td> 
       </tr> 
      </tbody> 

그리고 여기에 내가 ITEMNO 또는 수량에 초점받을 때에 복사 ITEMNO과 수량을 원하는 두 번째 테이블 :

<table class="table table-bordered" id="easyGlanceTable"> 
    <thead> 
    <tr><th width="50%">Item No.</th><th>Qty</th></tr> 
    </thead> 
    <tbody> 
    <tr><td></td><td></td></tr> 
    </tbody> 
</table> 
+0

두 번째 테이블의 셀을 동일한 관측 가능으로 간단하게 바인딩 할 수 있습니까? –

+0

@JasonSpake, 그건 내가 원래 생각한 것입니다. 그러나 모든 행에 품목 번호와 수량이 있기 때문에 어느 값을 가져올 지 어떻게 알 수 있습니까? – dmikester1

답변

2
당신이 당신의 입력에 data-bind="hasFocus: inputSelected"을 추가 할 수

, 다음 추가

self.inputSelected.subscribe(function(newValue) { 
    console.log("input value is " + self.inputValue()); 
}); 

언제든지 실행되는 뷰 모델에 inputSelected 변경

+0

이미'hasFocus : invalidItemNum'을 가지고 있습니다. 내가 제안한 것처럼 구독 할 수 있습니까? – dmikester1

+0

예, VM에서'invalidItemNum.subscribe()'를 추가하고 값을 가져오고 채울 함수를 정의하십시오 – stackoverfloweth

+0

완벽하게 작동합니다. 감사합니다! – dmikester1