0

我使用两个锚标记将控件转移到同一页面。并给出两个具有相同 id 但值不同的隐藏输入。如给定代码所示。

 <li data-icon="false"><a href="#paymentReceiptVoucher" onclick="loadAccForPayVoucher();">
        <input type="hidden" id="PRVou" value="payment">PaymentReceipt Voucher</a></li>

<li data-icon="false"><a href="#paymentReceiptVoucher" onclick="loadAccForPayVoucher();">
        <input type="hidden" id="PRVou" value="receipt">ReceiptPayment Voucher</a></li>

我想通过使用以下 javascript 代码来获取这些隐藏标签的值。

loadAccForPayVoucher = function() {
    alert(document.getElementById('PRVou').value);
}

它总是警觉payment的。我怎样才能根据链接获得价值。谢谢。

4

3 回答 3

1

尝试这个:

<li data-icon="false"> <a href="#paymentReceiptVoucher" onclick="loadAccForPayVoucher('payment');">
        <!--<input type="hidden" id="PRVou" value="payment">PaymentReceipt Voucher</a> --></li>

<li data-icon="false"><a href="#paymentReceiptVoucher" onclick="loadAccForPayVoucher('receipt');">
        <!-- <input type="hidden" id="PRVou" value="receipt">ReceiptPayment Voucher</a> --></li>
<script type="text/javascript">
    loadAccForPayVoucher = function(type) {
        alert(type);
        //alert(document.getElementById('PRVou').value);
    }
</script>
于 2013-07-02T06:06:48.580 回答
1

id属性意味着是唯一的,无论它们的上下文如何。整个文档中应该只有一个id元素具有给定的.

给元素一个类名,而不是:

<input type="hidden" class="PRVou" value="payment">

然后使用getElementsByClassName

document.getElementsByClassName('PRVou')[0].value
于 2013-07-02T05:59:28.037 回答
0

在 HTML 中,ID 属性始终是唯一的,因此当您调用 时document.getElementById,浏览器的 DOM 将出去并获取具有给定 ID 的任何(很可能是第一个)元素。

我能做些什么?

给他们单独的 ID,您的 html 将如下所示:

<li data-icon="false"><a href="#paymentReceiptVoucher" onclick="loadAccForPayVoucherPayment();">
     <input type="hidden" id="PRVou-payment" value="payment"/>PaymentReceipt Voucher</a></li>

<li data-icon="false"><a href="#paymentReceiptVoucher" onclick="loadAccForPayVoucherReceipt();">
    <input type="hidden" id="PRVou-receipt" value="receipt"/>ReceiptPayment Voucher</a></li>

然后你的 JavaScript 将有单独的事件处理程序:

loadAccForPayVoucherPayment = function() {
    alert(document.getElementById('PRVou-payment').value);
}
loadAccForPayVoucherReceipt = function() {
    alert(document.getElementById('PRVou-receipt').value);
}

更新:我给你做了一个小提琴:) http://jsfiddle.net/YCXC8/

于 2013-07-02T06:53:26.220 回答