2015-12-04 12 views
0

Я использую следующее сканирование штрих-кода jQuery для определения кодов и помещаю данные штрих-кода в текстовое поле на дочерней странице. Сейчас этот код на странице ребенка, и он работает, как ожидалось:Установить значение текстового поля на дочерней странице с главной страницы

 <script type="text/javascript" src="Scripts/jquery-2.1.4.min.js"></script> 
    <script type="text/javascript" src="Scripts/jquery.scannerdetection.js"></script> 
    <script type="text/javascript"> 
     $(document).scannerDetection({ 
      minLength: 5, // override the default minLength of 6 since barrel numbers are 5 digits - otherwise onError is triggered 
      timeBeforeScanTest: 200, // wait for the next character for upto 200ms 
      endChar: [13], // be sure the scan is complete if key 13 (enter) is detected 
      avgTimeByChar: 40, // it's not a barcode if a character takes longer than 40ms 
      ignoreIfFocusOn: 'input', // turn off scanner detection if an input has focus 
      onComplete: function (barcode, qty) { 
       $('#<%= txtBarcode.ClientID%>').val(barcode); 
       $('#<%= btnRefresh.ClientID%>').click(); 
      },// main callback function 
      scanButtonKeyCode: 116, // the hardware scan button acts as key 116 (F5) 
      scanButtonLongPressThreshold: 5, // assume a long press if 5 or more events come in sequence 
      onError: function (string) { alert('Error ' + string); } 
     }); 
    </script> 

Мне нужно переместить этот Jquery к моей главной странице, но я не могу понять, как ссылаться на элементы управления txtBarcode и btnRefresh, которые находятся на дочерняя страница с главной страницы. Может ли кто-нибудь дать мне образец кода для функции callback onComplete, которая позволила бы мне заполнить элементы управления на дочерней странице с главной страницы?

  onComplete: function (barcode, qty) { 
       $('#<%= txtBarcode.ClientID%>').val(barcode); 
       $('#<%= btnRefresh.ClientID%>').click(); 
      },// main callback function 

Спасибо!

ответ

2

Поместите метод в детской-странице, как и раньше, но назвал так:

function detectionCompleted (barcode, qty) { 
    $('#<%= txtBarcode.ClientID%>').val(barcode); 
    $('#<%= btnRefresh.ClientID%>').click(); 
} 

Теперь, просто использовать это имя в мастер-странице, как это:

... 
onComplete: detectionCompleted 
... 

В качестве альтернативы , вы можете положиться на css-класс. Просто используйте уникальное имя класса CSS для txtBarcode и btnRefresh, а затем использовать JQuery, как этот:

На странице ребенка, добавить CSS-класс txtBarcode и btnRefresh управления:

<asp:TextBox id="txtBarcode" class="barcode-textbox" /> 
<asp:Button id="btnRefresh" class="barcode-btn" /> 

сейчас, звоните в мастер-странице :

onComplete: function (barcode, qty) { 
    $('.barcode-textbox').val(barcode); 
    $('.barcode-btn').click(); 
} 
+0

Огромное спасибо! CssClass работает отлично. – gcresse