2013-02-05 68 views
1

我試圖做隱藏和幾個選擇和文本字段顯示和隱藏多個領域使用Javascript

的想法是顯示,當「銀行」被選中的第一個字段顯示用戶下拉選擇哪家銀行,直到那一部分工作完全正常,問題出現時,在下一個「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> 
+0

你真的應該使用像jQuery JavaScript框架。它使這樣的問題非常微不足道。 –

+0

我試圖使用jQuery,但我已經使用它,因爲它是一個在嚮導中轉換的表單,由於某種原因,jQuery代碼不起作用,這就是爲什麼我試圖這樣做,如果你能幫助我將不勝感激 – honey

+0

把它放在一個Js小提琴中,我們可以修復它。沒什麼複雜。 –

回答

2

你的問題是,你有相同的ID二元。

這部分:

<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 = 「銀行」。 嘗試更改選擇標識。

編輯

這裏的一些問題,我發現當我看到你的HTML:

  1. 多元素具有相同的ID。
  2. 在你的javascript中,它試圖獲得tipopago和mpcobro元素,元素在哪裏?
  3. 我覺得這個部分:
document.getElementById('otrosban').style.display = ''; 

應該是:

document.getElementById('otroban').style.display = ''; 
+0

嗨,我試過它不是這樣的:/ – honey

+0

@honey:看我編輯的答案 –

+0

嗨,我沒有包括tipopago或mpcobro的部分,因爲那些2工作完全正常...但我很高興地說,隨着身份證變化和otroban掃視我的眼睛(必須是因爲它是凌晨2:45)它是固定的!謝謝youuuuu !!! – honey