0

以下は、インターネットで多くのことを検索した後の私のコードです。私はこの単純な検証を行うことができません。

    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    <script type="text/javascript">
   $(document).ready(function(){

        $('#myText').click(function(){
           $('#radio1').removeAttr('disabled','disabled');
           $('#radio2').removeAttr('disabled','disabled');
           $('#radio3').removeAttr('disabled','disabled');
           $('#submit').removeAttr('disabled','disabled');
         })
});

    </script>
    </head>
    <body>

    <input type="checkbox" id="myText" value="Click it!">Click it!</input>
    <br/>
    <br/>

    <input type="radio" id="radio1" name="gok" value="Radio 1" disabled="disabled"> Radio 1</input>
    <br/>
    <input type="radio" id="radio2" name="gok" value="Radio 2" disabled="disabled"> Radio 2</input>
    <br/>
    <input type="radio" id="radio3" name="gok" value="Radio 3" disabled="disabled"> Radio 3</input>
    <br/>
    <button type="button" id="submit" disabled="disabled"> Submit</button>
    </body>
    </html>

チェックしたときの上のチェックボックス。ラジオボタンが有効になり、送信ボタンも有効になります。これが最適化されたソリューションだとは思いません。1)ラジオと送信ボタンをdivに保持し、divのIDを使用してみて、ラジオボタンの内側が有効になっている場合のような最適化されたバージョンのコードを取得するのを手伝ってください2)jqueryでは、イテレータを実行できます行のコードを減らす

前もって感謝します!!!

4

3 に答える 3

1

あなたはただすることができます

$('#myText').click(function(){
       // if this is all you are going to have in your html just
       // $(this).siblings().prop('disabled',false) would work
       $(this).siblings('input[type=radio],#submit').prop('disabled',false);
 })

http://jsfiddle.net/cj3zY/

fyi removeAttr を間違って使用しています -

$('#radio1').removeAttr('disabled'); //<-- should be how you use it.. 

ただし、jQuery 1.6 以降を使用している場合は、実際に .prop を使用する必要があります。

$(element).prop('disabled',true/false);

.prop() ドキュメント

プロパティは通常、シリアライズされた HTML 属性を変更することなく、DOM 要素の動的な状態に影響を与えます。例には、input 要素の value プロパティ、inputs とボタンの disabled プロパティ、またはチェックボックスの checked プロパティが含まれます。.attr() メソッドの代わりに、.prop() メソッドを使用して無効化およびチェックを設定する必要があります。

チェックボックスに応じて無効なプロパティを切り替えたい場合は、次のようにすることができます

$('#myText').click(function(){
       $(this).siblings('input[type=radio],#submit').prop('disabled',!this.checked);
})​

http://jsfiddle.net/cj3zY/1/

于 2012-08-30T16:20:12.247 に答える
1

Javascript:

$(document).ready(function(){
  $('#myText').click(function(){
    $('#enableMe').children().removeAttr('disabled'); // or $('#enableMe').children().prop('disabled',true/false')
  });
});

html:

<div id = 'enableMe'>
  <input type="checkbox" id="myText" value="Click it!">Click it!</input> <br/> <br/>

  <input type="radio" id="radio1" name="gok" value="Radio 1" disabled="disabled"> Radio 1</input> <br/>
  <input type="radio" id="radio2" name="gok" value="Radio 2" disabled="disabled"> Radio 2</input> <br/>
  <input type="radio" id="radio3" name="gok" value="Radio 3" disabled="disabled"> Radio 3</input> <br/>
  <button type="button" id="submit" disabled="disabled"> Submit</button>
</div>
于 2012-08-30T16:17:44.770 に答える
0

idfor each 要素を使用する代わりに、class属性を使用します。

これを試してください -デモ

于 2012-08-30T16:22:53.107 に答える