2017-11-15 1 views
0

Ich möchte in irgendeiner Form angezeigt werden, wenn die spezifische Optionsfeld aktiviert ist und es zu verbergen, wenn der Benutzer eine andere Taste Radio wähltjquery Optionsfeld Änderungsereignis nicht funktioniert

<div class="col-sm-6" id="addresses"> 
    <input type="radio" name="deco_request[address]" value="value[&quot;id&quot;]"> Some address<br> 
    <input type="radio" name="deco_request[address]" value="other" id="other-address"> Other Address<br> 
</div> 

js Code:

$("#other-address").on("change", function() { 
    if ($("#other-address").is(':checked')) { 
    return $("#new-address").show(); 
    } else { 
    return $("#new-address").hide(); 
    } 
}); 

von dem, was ich sehe, das Änderungsereignis feuert nicht, ich versuchte auch Klickereignis, aber hatte keinen Erfolg damit, auch bemerkte ich, wenn ich den Radioknopf prüfte, keine überprüften Attribute werden aber hinzugefügt .is (': checked') liefert wahr

+0

Ihr Code in Bezug auf den Fall genannt werden funktioniert, ich habe es in jfiddle versucht dem if - else eine Warnung hinzufügen. Stellen Sie sicher, dass jQuery zum Code hinzugefügt wird – Juan

+0

jquery hinzugefügt wird, habe ich einige andere jquery Code auf dieser Seite, die funktioniert ok – maki

+0

Das Ereignis wird aufgerufen, können Sie überprüfen, indem Sie eine Warnung hinzufügen() – Juan

Antwort

0

Sie brauchen return nicht und verwenden prop

PS zu überprüfen: Ihre Check Syntax gültig ist, aber manchmal funktioniert nicht richtig mit diesem Code

$("#other-address").on("change", function() { 
    if ($("#other-address").prop("checked", true)) { 
    $("#new-address").show(); 
    } else { 
    $("#new-address").hide(); 
    } 
}); 
0

versuchen

$("input[name='deco_request[address]']").change(function() { 
    $("#new-address").toggle(); 
}); 

$("input[name='deco_request[address]']").change(function() { 
 
    $("#new-address").toggle(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="col-sm-6" id="addresses"> 
 
    <input type="radio" name="deco_request[address]" value="value[&quot;id&quot;]"> Some address<br> 
 
    <input type="radio" name="deco_request[address]" value="other" id="other-address"> Other Address<br> 
 
</div> 
 

 
<div id="new-address">Address</div>

+0

dies funktioniert für zwei Eingaben, aber in meinem Fall werden die Eingaben dynamisch generiert und in einigen Fällen kann es nur eine oder viele von ihnen sein – maki

+0

so wie Sie definieren können, mit was ist ausblenden, was zeigen – Bhargav

+0

sollte es nur angezeigt werden, wenn andere Adresse überprüft wird, auf jeden Fall , Ihre Lösung muss funktionieren, wenn ich überprüfe, ob die andere Adresse im Änderungsereignis überprüft wird, aber leider funktioniert es nicht für mich, ich lasse das Änderungsereignis einfach und setze eine console.log hinein, aber es wurde nicht angezeigt – maki

0

Änderung auf diese Weise

$("#addresses input").on("change", function() { 
    if ($("#other-address").is(':checked')) { 
    return $("#new-address").show(); 
    } else { 
    return $("#new-address").hide(); 
    } 
}); 

https://jsfiddle.net/6d0zydjj/1/

1

diese können Sie Ihr Problem

$('.radio').change(function(){ 
     if ($("#other-address").is(':checked')) { 
      $("#new-address").show(); 
     } else { 
      $("#new-address").hide(); 
      } 
    }); 
gelöst tun können

$('.radio').change(function(){ 
 
     if ($("#other-address").is(':checked')) { 
 
      $("#new-address").show(); 
 
     } else { 
 
      $("#new-address").hide(); 
 
      } 
 
    });
#new-address{ 
 
display:none;}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<div class="col-sm-6" id="addresses"> 
 
    <input type="radio" class="radio" name="deco_request[address]" value="value[&quot;id&quot;]"> Some address<br> 
 
    <input type="radio" class="radio" name="deco_request[address]" value="other" id="other-address"> Other Address<br> 
 
</div> 
 

 
<div id="new-address"> 
 
Hi 
 
</div>

Verwandte Themen