2017-03-09 5 views
0

einfaches Szenario:get Radiobutton Wert aktiviert oder deaktiviert in jquery

<div class="question_wrapper"> 
    <input type="text" class="new_question"> 
    <input type="checkbox" class="radioinput" name="new_questionActive[]"> 
</div> 

Ich versuche, auf, um herauszufinden, wie auf den spezifischen Wert dieses Optionsfelds zu erhalten, die dynamisch hinzugefügt wird, jedes Mal wenn ich eine Taste drücken .

Die JavaScript bisher:

$('.new_question').each(function() { 
    var active = $(this).parent().next(".radioinput").attr("checked") ? 1 : 0; 
} 

Aus irgendeinem Grund, es ergibt immer "0" als Wert. Ich habe versucht, mit closest zu arbeiten, versucht, mit siblings, mit next Abhilfe zu schaffen, aber nichts scheint zu funktionieren.

Ich brauche die nächste .radioinput, die direkt die vorherige .new_question folgt.

Was vermisse ich oder mache ich falsch?

aktualisieren 1

wie vorgeschlagen, änderte ich attr-prop, so ist es dies jetzt sieht liegen:

var active = $(this).parent().next(".radioinput").prop("checked") ? 1 : 0; 

Aber noch immer 0

+1

Änderung 'attr ("geprüft")' auf 'prop ("checked"); ' – Jer

+0

gleicher Effekt, ergibt immer noch 0 – DasSaffe

+0

Verwende '$ (this) .next(). Prop (" checked ")? 1: 0' – Mohammad

Antwort

1

Wie :checkbox ist Geschwister der aktuellen Element, so müssen Sie .next() mit dem aktuellen Element verwenden.

var active = $(this).next(".radioinput").prop("checked") ? 1 : 0; 
 
console.log(active)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="question_wrapper"> 
 
    <input type="text" class="new_question"> 
 
    <input type="checkbox" class="radioinput" name="new_questionActive[]"> 
 
</div>

OR, können Sie .find() verwenden Nachkomme Ziel, statt .next()

var active = $(this).parent().find(".radioinput").prop("checked") ? 1 : 0; 
 
console.log(active)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="question_wrapper"> 
 
    <input type="text" class="new_question"> 
 
    <input type="checkbox" class="radioinput" name="new_questionActive[]"> 
 
</div>

+0

Das funktioniert tatsächlich. Danke für deine Unterstützung! Dachte, ich verstehe nicht, warum es nicht funktioniert, zum Elternteil zu gehen und nach "next" zu suchen. wird dies so schnell wie möglich akzeptieren. Danke, mein guter Herr. – DasSaffe

Verwandte Themen