2017-10-19 11 views
0

同じ名前の2つの<input>のフォームがあります。そのうちの一つが必要と選択されていない(したがって、無効)である場合、他方も無効として特徴付けられる:同じ名前の2つの無線入力の有効性を無効にする

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<script src="https://code.jquery.com/jquery-2.2.3.js"></script> 
 
</head> 
 

 
<body> 
 

 
    <form id="form"> 
 
    <input id="rad1" type="radio" name="my radio 3" value="option 1" required> 
 
    <input id="rad2" type="radio" name="my radio 3" value="option 2"> 
 
    </form> 
 

 
    <script> 
 
    function checkValid() { 
 
     console.log('Should be valid form: ' + document.getElementById('form').checkValidity()); 
 
     console.log('Rad1 should show false: ' + document.getElementById('rad1').checkValidity()); 
 
     console.log('Rad2 should show true: ' + document.getElementById('rad2').checkValidity()); 
 
    } 
 

 
    checkValid(); 
 
    </script> 
 

 
</body> 
 

 
</html>

Iは、第2の無線入力が有効であると期待されます。 #rad2を有効にするにはどうすればいいですか(つまりcheckValidity()返信true)?これらの2つの無線間で妥当性が結合されているのはなぜですか?

これについてすべてのMDNドキュメントを読みましたが、説明が見つかりません。

答えて

1

必要に応じてラジオボタングループを設定する場合は、オプションが選択されている必要があります。

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<script src="https://code.jquery.com/jquery-2.2.3.js"></script> 
 
</head> 
 

 
<body> 
 

 
    <form id="form"> 
 
    <input id="rad1" type="radio" name="my radio 3" value="option 1" required> 
 
    <input id="rad2" type="radio" name="my radio 3" value="option 2"> 
 
    </form> 
 

 
    <script> 
 
    function checkValid() { 
 
     console.log('Should be valid form: ' + document.getElementById('form').checkValidity()); 
 
     console.log('Rad1 should show false: ' + document.getElementById('rad1').checkValidity()); 
 
     console.log('Rad2 should show true: ' + document.getElementById('rad2').checkValidity()); 
 
    } 
 

 
    checkValid(); 
 
    $('[name="my radio 3"]').on('change', function() { 
 
     checkValid(); 
 
    }) 
 
    </script> 
 

 
</body> 
 

 
</html>
:あなたは、特定のオプションがチェックされていることを確認したい場合は、 var selected = document.querySelectorAll('#Rad1:checked');var isSelected = selected.length > 0 ? true: false;

お知らせTRUEにあなたは以下の私調整スニップでラジオをチェックしてどのように、彼らは両方の変化のようなものを使用する必要があります

関連する問題