从母版页设置子页上的文本框值

Set textbox value on child page from master page

我正在使用以下 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 控件。谁能给我一些 onComplete 回调函数的示例代码,让我可以从母版页填充子页上的控件?

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

谢谢!

像以前一样将方法放在子页面中,但命名如下:

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

现在,只需在母版页中使用该名称,如下所示:

...
onComplete: detectionCompleted
...

或者,您可以依赖 css-class。只需为 txtBarcodebtnRefresh 使用唯一的 css class 名称,然后像这样使用 jQuery:

在子页面上,添加css-classtxtBarcodebtnRefresh控件:

<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();
}