2017-05-09 3 views
1

wie Eingabetext erforderlich, wenn im aktivierten Option1 Optionsfeld musste ich Wert für jedes Optionsfeld festlegen und wenn im Kontrollkästchen Option2 der Eingabetext wird nicht benötigtWie setze ich Eingabe Text automatisch erfordern, wenn die bestimmte Optionsfeld ich überprüfte

 <input type="radio" name="ladder" value="ans1"> 
    <label for="option1">Option1</label><br> 

    <input type="radio" name="ladder" value="ans2"> 
    <label for="option2">Option2</label><br> 

    <input type="text" name="ladder-meters" id="ladder-meters"> 

unten ist die Javascript-Codierung

<script> 
    $('input[name="ladder"]').change(function() { 
     if($(this).is(':checked')) { 
      $('#ladder-meters').attr('required'); 
     } else { 
      $('#ladder-meters').removeAttr('required'); 
     } 
    }); 
<script> 

diejenigen Codierung Mine im Grunde nicht. Ich nehme es von anderen ppl in Stackoveflow, aber sie verwenden diesen Code erfolgreich, aber wenn ich es versuche funktioniert

+0

Sie haben eine abschließende Paranthese in 'if condition' vergessen. –

+1

Erstens, das ist jQuery-Code, also wird es nicht funktionieren, wenn Sie jquery.js auf Ihrer Seite vor diesem Code nicht enthalten. Zweitens müssen Sie den ersten Selektor in '$ ('input [name =" ladder "]')' 'ändern, da der aktuelle Selektor von' "ladder" 'nach einem Element mit' id = "ladder" 'sucht (was nicht existiert). – nnnnnn

+0

ich füge bereits if() Bedingung und bereits jquery.js und $ ('input [name = "leiter"]') aber immer noch nicht funktioniert –

Antwort

2

Wenn Sie jQuery und Attribute verwenden, die nur zwei Werte (ein und aus), sollten Sie die prop() function verwenden. In Ihrem Fall wird es sein:

if ($(this).is(':checked')) { 
    $('#ladder-meters').prop('required', true); 
} else { 
    $('#ladder-meters').prop('required', false); 
} 

Oder, wenn Sie ein paar Zeilen speichern wollen:

var required = $(this).is(':checked'); 

$('#ladder-meters').prop('required', required); 

EDIT:

In Ihrem Fall gibt es auch ein Problem mit Ihrem if Zustand. Sie sollen nach aktuellem Wert Ihres Optionsfeld Elemente überprüfen, etwa so:

$('[name=ladder]').change(function() { 
    var required = ($(this).val() === 'ans1'); 

    $('#ladder-meters').prop('required', required); 
}); 

dieses Beispiel finden Sie auf this CodePen.

+0

immer noch nicht funktioniert: ( –

+0

@LokmanHakim Ich habe einige Änderungen hinzugefügt, und ein Beispiel auf CodePen, sollte es jetzt funktionieren. – parrker9

+0

Dank Bruder endlich seine Arbeit :) –

Verwandte Themen