2015-05-20 23 views
6

içindeki girişin değerini alın: kullanıcı seçeneğini 1-8 seçtiğindeBen şu seçeneklerle bu formu var bir girdi

<select name="choices" id="options" onchange="showText()"> 
    <option value="">Select amount</option> 
    <option value="1">100PHP</option> 
    <option value="2"> 500PHP</option> 
    <option value="3"> 1000PHP</option> 
    <option value="4"> 2000PHP</option> 
    <option value="5"> 3000PHP</option> 
    <option value="6"> 4000PHP</option> 
    <option value="7"> 5000PHP</option> 
    <option value="8"> 10,000PHP</option> 
    <option value="others"> others..</option> 
    </select> 

    <div class="control-group" id="show" style="display:none;"> 

, bu miktar gösterecektir. Ben başarılı bir şekilde bu javascript ile yaptık: Kullanıcı i seçer başkalarının başka giriş alanını görüntüler

Şimdi
function showText(){ 
    var value = document.getElementById('options').value; 
    if(value == '1'){ 
    var amount = document.getElementById("amount"); 
    amount.value = "100"; 
    document.getElementById('show').innerHTML = 
    "<br><br><font size =+1><b>Amount&nbsp;&nbsp;&nbsp;P 100 </b></font>" 
    document.getElementById('show').style.display = "block"; 
    } 
    else if(value == '2'){ 
    var amount = document.getElementById("amount"); 
    amount.value = "500"; 
    document.getElementById('show').innerHTML = "<br><br><font size =+1><b>Amount&nbsp;&nbsp;&nbsp;P 500 </b></font>" 
    document.getElementById('show').style.display = "block"; 
    } 
    //up to option 8 

. kullanıcı giriş değeri seçeneğin 'diğerleri' olacak edeceği değeri:

else if (value == 'others'){ 
    document.getElementById('show').innerHTML = "<br><div class='control-group'><label class='control-label'>Enter Amount</label><div class='controls'><input type='text' id='other_amount' name='other_amount'> "; 
    var amount = document.getElementById("other_amount").value; 
    document.getElementById('show').style.display = "block"; 
    } 

yazık, ilk girişin değerini olmak ikinci girişin değerini almakla başarılı olmadı. Umarım yardım edebilirsin! Teşekkür ederim! Her şeyden

+0

Bir keman sağlayabilir misiniz? –

+1

JavaScript'te dize birleştirme hakkında bilgi okumalısınız. Gerçekten çok fazla 'if/else' ifadesine gerek yok. Dize birleştirme ile tüm "if/else" ifadelerini değiştirebilirsiniz, bunlardan sadece bir veya iki tanesi olacaktır. –

+0

Sayfada her iki durumun da olması daha kolay olabilir, ancak gizlendi ve her durum için DOM'yi değiştirmek yerine, gerektiğinde ihtiyaç duyduğunuz girdi öğelerini göstermek daha kolay olmaz mıydı? – Jordumus

cevap

3

Öncelikle, kod oldukça fazla artırabilir:

<select name="choices" id="options" onchange="showText()"> 
    <option value="">Select amount</option> 
    <option value="100">100PHP</option> 
    <option value="500">500PHP</option> 
    <option value="1000">1000PHP</option> 
    <!-- (...) --> 
    <option value="-1"> others..</option> 
</select> 
Ben de "gizli" girişi için ekleyerek öneririz

: Size html değiştirmek

function showText(){ 
    var value = document.getElementById('options').value; 
    if(value == '-1'){ 
     //Other 
     document.getElementById('hidden').style.display = 'block'; 
    } 
    else { 
     document.getElementById('hidden').style.display = 'none'; 
     var amount = document.getElementById("amount"); 
     amount.value = value; 
     document.getElementById('show').innerHTML = "<br><br><font size =+1><b>Amount&nbsp;&nbsp;&nbsp;P " + value + "</b></font>" 
     document.getElementById('show').style.display = "block"; 
    } 
} 

bunlar html zaten others seçer, ancak görünmez ayarlamak zaman:

<div id="hidden" style="display:none;"class='control-group'> 
    <label class='control-label'>Enter Amount</label><div class='controls'> 
     <input type='text' id='other_amount' name='other_amount' onChange='otherText()'/> 
    </div> 
</div> 

Şimdi, ne zaman Eğer kendi değerini seçebilir bir giriş göstermek istiyorum -1 onlar değerle others.. belirleyin:

function otherText() { 
     document.getElementById('amount').value = document.getElementById("other_amount").value; 
} 

Working jsFiddle:

if (value == -1) { 
    document.getElementById('hidden').style.display = 'block'; 
} 

Şimdi sadece bir sorun olmamalı işlevini otherText() gerek

+0

Merhaba Guys! Geri bildiriminiz için teşekkür ederiz. Bunu takdir ediyorum. Jordumus, önerinizi denedim ama çalışmıyor gibi görünüyor. https://jsfiddle.net/oskqk0k4/ –

+0

@MariaAlgelikaSantos cevabımın sonunda kemanı denediniz mi? İşte yine: [fiddle] (http://jsfiddle.net/2tn9pp8o/2/) – Jordumus

+0

Oh Üzgünüm, kemanı görmedim :) İkinci girdinin sadece 'öteki' seçeneği olduğunda görünmesini istedim seçilen. Ayrıca, ikinci giriş alanında girilen miktar ne olursa olsun, gönderimi tıklattığımda 'öteki' seçeneğinin değeri olacaktır. Tekrar özür dilerim, bu konuda profesyonel değilim. Teşekkür ederim. –