1

いくつかの選択フィールドとテキストフィールドの非表示と表示を実行しようとしています

最初のフィールドで「Banco」を選択すると、ユーザーがどの銀行を選択できるかを示すドロップダウンが表示されます。その部分がすべて正常に機能するまで、次の「banco」ドロップダウンで「otros」を選択すると問題が発生します。貸衣装業者が銀行の名前を記入するためのテキストフィールドが表示されるはずですが、私はすべてを行ったので、それを機能させることができないようです

手伝ってくれませんか?

これはJSです

function formapago() {
if (document.getElementById('infopago').value == 'banco') {
    document.getElementById('banco').style.display = '';
    document.getElementById('tipopago').style.display='';
    }   

else {
          document.getElementById('banco').style.display = 'none';
          document.getElementById('tipopago').style.display='none';
}

if (document.getElementById('infopago').value == 'mp') {
    document.getElementById('mpcobro').style.display = '';
} else {
          document.getElementById('mpcobro').style.display = 'none';
}  
if (document.getElementById('banco').value == 'otros') {
    document.getElementById('otrosban').style.display = '';
    }   

else {
          document.getElementById('otrosban').style.display = 'none';
}   

}

およびHTLM

<select name="infopago" id="infopago" onchange='formapago()'>
          <option value="elegir" selected="selected">Elegir</option>
          <option value="banco">Banco</option>
          <option value="mp">Mercado Pago</option>
        </select>
        </p>
        <div id="banco" style="display: none">
      <p><strong>BANCO: </strong></p>
      <p>
        <label for="banco">Banco Emisor</label>
        <select name="banco" id="banco" onchange='formapago()'>
          <option value="elegir" selected="selected">Elegir</option>
          <option value="provincial">Provincial</option>
          <option value="mercantil">Mercantil</option>
          <option value="banesco">Banesco</option>
          <option value="venezuela">Venezuela</option>
          <option value="otros">Otro</option>
        </select>
      </p> </div>

      <div id="otroban" style="display: none">
      <p>
        <label for="otroban">Otro Banco</label>
        <input type="text" name="otroban" id="otroban"/>
      </p>
      </div> 
4

1 に答える 1

2

問題は、同じ ID を持つ 2 つの要素があることです。

この部分 :

  <div id="banco" style="display: none">
    <p><strong>BANCO: </strong></p>
    <p>
      <label for="banco">Banco Emisor</label>
      <select name="banco" id="banco" onchange='formapago()'>
       <option value="elegir" selected="selected">Elegir</option>
       <option value="provincial">Provincial</option>
       <option value="mercantil">Mercantil</option>
       <option value="banesco">Banesco</option>
       <option value="venezuela">Venezuela</option>
       <option value="otros">Otro</option>
       </select>
    </p> 
 </div>

div と select 要素には id="banco" があります。選択 ID を変更してみてください。

編集

あなたのHTMLを見たときに見つけたいくつかの問題:

  1. 同じ ID を持つ複数の要素。
  2. あなたのJavaScriptでは、tipopagoとmpcobro要素を取得しようとしていますが、要素はどこにありますか?
  3. この部分だと思います:
  document.getElementById('otrosban').style.display = '';

する必要があります:

  document.getElementById('otroban').style.display = '';
于 2013-02-05T06:50:15.343 に答える