如果在jquery中选择了“other”选项,我试图显示一个输入字段

时间:2015-01-27 17:13:43

标签: jquery

<select id="ID_bank_selection">
    <option>BANK CENTRAL ASIA</option>
    <option>BANK MANDIRI</option>
    <option>BANK RAKYAT INDONESIA (BRI)</option>
    <option>BANK NASIONAL INDONESIA 46 (BNI 46)</option>
    <option>CIMB NIAGA BANK</option>
    <option>BANK DANAMON</option>
    <option>BANK INTERNATIONAL INDONESIA (BII)</option>
    <option>BANK PERMATA</option>
    <option>BANK MANDIRI SYARIAH</option>
    <option>BANK RAKYAT INDONESIA SYARIAH</option>
    <option name="other" id="id_other" val="1">OTHER (Add Bank Name Below)</option>
</select>
<br/>
<br>
<label>Bank Name:</label>
<input class="hide-vn" type="text" name="nameofbank" id="nameofbanktext" size="20" value="" placeholder="Other Bank Name">

CSS:
.hidden {
display: none;
}

jquery的:

$(document).ready(function () {
    var nameOfBank = $('#nameofbanktext').addClass('hidden');
    var idBank = $('#ID_bank_selection');
    var otherOption = $("#ID_bank_selection option[name='other']");


    idBank.change(function(){
        if($('option:selected').val() == '1'){
            nameofBank.removeClass('hidden');
        }
    });    
});

我尝试了许多相关问题的解决方案,但没有一个有效。请帮助我,因为我需要尽快得到照顾。这是一个jsfiddle的链接: http://jsfiddle.net/k3y8q40q/

5 个答案:

答案 0 :(得分:0)

类似的东西:

idBank.on("change", function(){
        if($(this).val() == '1'){
            $("#nameofbanktext").show();
        }
        else {
            $("#nameofbanktext").hide();
        }
    });

这里有完整的解决方案:

link

答案 1 :(得分:0)

JSFIDDLE DEMO =&gt; http://jsfiddle.net/t341vdL3/1/

需要进行2项更改才能使您的功能正常工作

  1. HTML - 使用value代替val

    <option name="other" id="id_other" value="1">OTHER (Add Bank Name Below)</option>

  2. Javascript

    var nameOfBank = $('#nameofbanktext').addClass('hidden');
    var idBank = $('#ID_bank_selection');
    var otherOption = $("#ID_bank_selection option[name='other']");    
    
    idBank.change(function(){
        var selectedValue = $(this).val(); //use $(this)
    
        if(selectedValue == 1){
            nameOfBank.removeClass('hidden'); //typo here 'O' caps
        }
    });    
    
  3. 另外,我建议你在$前加上jquery选择器变量。

    例如:var $idBank = $('#ID_bank_selection');执行此操作,您将知道哪个变量是jquery选择器而哪个变量不是。

答案 2 :(得分:0)

首先在html上将值1设置为属性&#34; val&#34;如果不存在,您需要使用&#34; value&#34;。 另外,var&#34; nameOfBank&#34;的名称。在if语句中是错误的,小写&#34; o&#34;。

所以你的代码应该是:

<select id="ID_bank_selection">
    <option>BANK CENTRAL ASIA</option>
    <option>BANK MANDIRI</option>
    <option>BANK RAKYAT INDONESIA (BRI)</option>
    <option>BANK NASIONAL INDONESIA 46 (BNI 46)</option>
    <option>CIMB NIAGA BANK</option>
    <option>BANK DANAMON</option>
    <option>BANK INTERNATIONAL INDONESIA (BII)</option>
    <option>BANK PERMATA</option>
    <option>BANK MANDIRI SYARIAH</option>
    <option>BANK RAKYAT INDONESIA SYARIAH</option>
    <option name="other" id="id_other" value="1">OTHER (Add Bank Name Below)</option>
</select>
<br/>
<br>
<label>Bank Name:</label>
<input class="hide-vn" type="text" name="nameofbank" id="nameofbanktext" size="20" value="" placeholder="Other Bank Name">

CSS:
.hidden {
display: none;
}

和javascript:

$(document).ready(function () {
    var nameOfBank = $('#nameofbanktext').addClass('hidden');
    var idBank = $('#ID_bank_selection');
    var otherOption = $("#ID_bank_selection option[name='other']");


    idBank.change(function(){
        if($('option:selected').val() == '1'){
            nameOfBank.removeClass('hidden');
        }
    });    
});

答案 3 :(得分:0)

$('#nameofbanktext').hide();
var idBank = $('#ID_bank_selection');
var otherOption = $("#ID_bank_selection option[name='other']");
idBank.change(function(){
    if($(this).val() == 1){
         $('#nameofbanktext').show();
    }
   else
   {
       $('#nameofbanktext').hide();
   }                    
});    

答案 4 :(得分:0)

您可以使用attr('name')代替val(),或使用value作为您的属性名称,但无论如何,您错误地将变量名称存储在{{1}对象 - 在你的小提琴中input而不是nameOfBank

nameofBank

 idBank.change(function(){
    if($('option:selected').attr('name') == 'other'){
        nameOfBank.removeClass('hidden');
    }
});  

Fiddle name

Fiddle val()