0

コントロールを同じページに転送するために2つのアンカータグを使用しています。同じIDで値が異なる2つの隠し入力を提供します。指定されたコードに示すように。

 <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属性は、そのコンテキストに関係なく、一意であることを意図しています。ドキュメント全体で、指定された を持つ要素は1 つだけである必要があり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 に答える