2012-05-03 18 views
1

私はフォーラムの多くでトグルして、これを行う方法を使用しましたが、うまくいかないようです。だから私は私が間違ったことを発見するのを助ける目の第二のペアを探しています。jQueryを無効にして、選択したオプションに基づいて有効にする

これはフォームを生成する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> 

答えて

1

: VAR CHK = $(この).find( ':選択')。valを();これは、「その他」オプションが選択されているかどうかに基づいて、テキスト入力のdisabled属性を変更します

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

:これはどのように

+0

を次のよう... [] SELECT文の削除。彼のコード( '$(this).val()')は正しい値を得ます。 – j08691

+0

うん、そうだよ。 jqueryが親要素から値を推測することはわかりませんでした。クール! –

0
+0

'$("入力:テキスト[名前=その他] ")にも簡略化することができます:attr("無効 "、$(this).val()!= 'その他')); ' –

+0

それは少しのように働いただけでそれはちょうど神秘的に停止しました。私はちょうど $( "input:text [name = Other]")を持つことによってそれをテストしました。attr( "disabled"、true); それを無効にしました。私はそれの後で何かがねじれていると思う。何かヒント? – Paradigm

+0

@ Robertpurpose-このページにはJavaScriptがありますか? – j08691

1

何らかの理由で、changeイベントバインディングが正常に実行されません。あなたのコードfiddleにしようとしたとき、それは動作していませんでした。

次に、select[name=School[]]select[name='School[]'](一重引用符を見てください)に変更しました。これはworkに開始されました。

なぜこのセレクタを有効にするかはわかりません。なぜなら、私は引用符なしでそれを読んだので、属性セレクタは正常に動作するはずです。

とにかく、私は今日も何かを学んだ。

ありがとうございました。

+0

ああ私はその奇妙な演技されているので、その解決策を試してみましょう。しかし、埋め込みについてはどうすればよいのですか?一重引用符内の一重引用符? – Paradigm

+0

いいえ、私は二重引用符 '$(" select [name = 'School []'] ")'で囲まれた一重引用符でかまいません。 '$ ['select [name =" School [] " ] ') '。 –

+0

私はこれがうまくいくことを望みました...まだ不自由なものはありません – Paradigm

0

こんにちは、私はあなたのコードのためのRobertpurposeと他のコースに感謝したいと思います。私はあなたのコードを試しましたが、何も起こっていません...私はそれがjqueryまたは別のスクリプトの私のバージョンで問題ではなかったかどうかをチェック...しかし、再び何も....その後、私は遊んだと私は を選択し、[名前=「学校」]を、これは他の誰かに役立ちます

希望...必要はありません