1

私は多くのフォーラムを切り替えて、これを行うための提案された方法を使用しましたが、うまくいかないようです. だから私は自分が何を間違えたのかを発見するのを助けるために、2番目の目を探しています.

これはフォームを生成する cms であり、残りを実行するスクリプトを書いているだけです。jQuery目的のcmsによると、名前とIDを交換できます。以下に私のjQueryコードを示し、次に操作しようとしている部分を示します。フォームは既にテ​​キスト ボックスを無効にしており、選択肢が選択された後に再度有効にすることはできません。

<script type="text/javascript">  
  $(document).ready(function() 
  {
    $("input:text[name=Other]").attr("disabled", true);
      $("select[name=School[]]").change(function() 
      {
      var chk= $(this).val();
        if (chk == 'Other') 
        {
          $("input:text[name=Other]").attr("disabled", false);
        }
      });
  });
</script>

<form id="ouforms" name="ouforms" method="post" class="ldpforms">    
  <select name="School[]">
    <option value="PleaseSelect" checked="checked">(Please Select)</option>
    <option value="BeachPublicSchools">Beach Public Schools</option>
    <option value="BelfieldPublicSchools">Belfield Public Schools</option>
    <option value="BillingsCountyPublicSchools">Billings County Public Schools</option>
    <option value="BowmanCountyPublicSchools">Bowman County Public Schools</option>
    <option value="DakotaHorizonYouthCenter">Dakota Horizon Youth Center</option>
    <option value="DickinsonAdultLearningCenter">Dickinson Adult Learning Center</option>
    <option value="DickinsonCatholicSchools">Dickinson Catholic Schools</option>
    <option value="DickinsonStateUniversityStudents">Dickinson State University Students</option>
    <option value="EarlyChildhoodLeft">Early Childhood Left</option>
    <option value="GlenUllinPublicSchools">Glen Ullin Public Schools</option>
    <option value="HallidayPublicSchools">Halliday Public Schools</option>
    <option value="HebronPublicSchools">Hebron Public Schools</option>
    <option value="HettingerPublicSchools">Hettinger Public Schools</option>
    <option value="HopeChristianAcademy">Hope Christian Academy</option>
    <option value="KilldeerPublicSchools">Killdeer Public Schools</option>
    <option value="LoneTreeGolvaPublicSchools">Lone Tree (Golva) Public Schools</option>
    <option value="MottRegentPublicSchools">Mott/Regent Public Schools</option>
    <option value="NewEnglandPublicSchools">New England Public Schools</option>
    <option value="RichardtonTaylorPublicSchools">Richardton  Taylor Public Schools</option>
    <option value="ScrantonPublicSchools">Scranton Public Schools</option>
    <option value="SouthHeartPublicSchools">SouthHeart Public Schools</option>
    <option value="SWCHS">SWCHS</option>
    <option value="TwinButtesPublicSchools">Twin Buttes Public Schools</option>
    <option value="WestRiverSpecialServices">West River Special Services</option>
    <option value="Other">Other</option>
  </select>
  <br/>
  <label for="Other">Other: </label>
  <input type="text" name="Other" value=""/>
</form>
4

4 に答える 4

1

何らかの理由で、changeイベント バインドが成功しません。コードをいじろうとすると、うまくいきませんでした。

次に、(一重引用符を見る)に変更select[name=School[]]したところ、動作select[name='School[]']し始めました。

理由はわかりませんが、これはセレクターを有効にすることを引用しています。なぜなら、どこかで、引用符なしで属性セレクターが正常に機能することを読んだことがあるからです。

とにかく、私も今日何かを学びました。

ありがとう。

于 2012-05-03T17:21:37.777 に答える
1

使用する必要があります: var chk= $(this).find(':selected').val();

于 2012-05-03T16:56:36.087 に答える
0

こんにちは。まず最初に、Robertpurpose のコードに感謝します。もちろん、他の人たちにも感謝します。私はあなたのコードをそのまま試しましたが、何も起こりませんでした...それで、私のバージョンのjqueryまたは別のスクリプトに問題がないかどうかを確認しました...しかし、再び何もありません.... select ステートメントの [] を削除します...次のように: select[name='School']

これが他の誰かに役立つことを願っています...

于 2012-12-30T06:22:58.997 に答える
0

これはどう:

$("input:text[name=Other]").attr("disabled", true);
$('select[name="School[]"]').change(function() {
    $("input:text[name=Other]").attr("disabled", ($(this).val() == 'Other') ? false : true);
});​

これにより、「その他」オプションが選択されているかどうかに基づいて、テキスト入力の無効属性が変更されます。

jsFiddle の例

于 2012-05-03T16:58:31.373 に答える