0

選択ボックスの値に応じて使用されるフォームフィールドの 2 つの異なるセットがあるフォームがあります。私が抱えている問題は、無関係な入力フィールドを無効にしようとすると、無効な属性が次のように表示されることです。これはかなり複雑なフォームなので、関連するフィールドを使用して、できるだけシンプルに保つようにします。何かが足りないと思われる場合は...もっと見る必要がある場合はお知らせください。

<cfform id="entry-form" ACTION="index-10.cfm?Company" name="send" class="uniForm">
        <div class="ctrlHolder"><label for="" style="display:none"><em>*</em>Builder or Individual</label>                        
                        <cfselect name="select1" id="select1">                
                            <option value="" <cfif Individual is "">selected="selected"</cfif>>Who is this Case for? (choose one)</option>                
                            <option value="0"<cfif Individual is 1>selected="selected"</cfif>>An Individual Home Owner</option>                
                            <option value="1"<cfif Individual is not 1 and Individual is not "">selected="selected"</cfif>>A Builder</option>              
                         </cfselect>
                     <p class="formHint">A selection is required</p>        
    </div>

    <!--- this is for individual home owner. --->        
                <div class="hide" id="hide1">  

                  <div class="ctrlHolder"><label for="" style="display:none"><em>*</em>First name</label>
                  <cfinput type="text"             
                              name="FirstName" 
                              id="FirstName" 
                              data-default-value="Enter your first name" 
                              size="35" 
                              class="textInput required validateAlpha"
                              maxlength="50"
                              value="#FirstName#">
                  <p class="formHint">First Name is required</p>
                  </div>
               </div>

               <div class="hide" id="hide2">

                 <div class="ctrlHolder"><label for="" style="display:none"><em>*</em>Builder Name</label>
                    <cfinput type="text" id="builder"
                                name="BuilderName"
                                data-default-value="Type a builder's name"
                                size="35" 
                                class="textInput required"
                                value=""  />
                      <p class="formHint">Builder's name is required</p>
                        <cfinput id="builder_hidden" name="BuilderID" type="hidden" value=""  />  
                        <cfinput id="builder_hidden_plan" name="PlanID" type="hidden" value="" />  
                    </div>  
               </div>
</cfform>

    <script>

     $(document).ready(function(){    
        $("#select1").change(function(){         
            if ($(this).val() == "1" ) {             
                $("#hide2").slideDown("fast"); //Slide Down Effect              
                $("#hide1").slideUp("fast");
                $("#FirstName").prop("disabled", true);
                        $("#builder").prop("disabled", false);
    } else if ($(this).val() == "0" ){             
                $("#hide1").slideDown("fast");    //Slide Down Effect             
                $("#hide2").slideUp("fast");
                        $("#FirstName").prop("disabled", false);
                        $("#builder").prop("disabled", true);    
            }   
        });
</script>

私は使っている:

  • jquery-1.9.1.js
  • jquery-ui-1.10.1.custom.js
  • uni-form-validation.jquery.js
4

2 に答える 2

1

問題が見つかりました。無効なプロパティが追加されていました。これが機能しないのは、必要なクラスでした。これを修正するために removeClass および addClass メソッドを追加しました。

于 2013-03-09T16:44:26.773 に答える
0

jQuery の「prop」を「attr」に変更し、以下のスクリプトが正常に動作することを確認してください.....

<script type="text/javascript">
 $(document).ready(function(){    
    $("#select1").change(function(){         
        if ($(this).val() == "1" ){             
            $("#hide2").slideDown("fast"); //Slide Down Effect              
            $("#hide1").slideUp("fast");
            $("#firstname").attr("disabled", "disabled");
            $("#builder").attr("disabled", false);
        }
        else if ($(this).val() == "0" ){             
            $("#hide1").slideDown("fast");    //Slide Down Effect             
            $("#hide2").slideUp("fast");
            $("#firstname").attr("disabled", false);
            $("#builder").attr("disabled", "disabled");    
        }   
    });
});

于 2013-03-11T07:05:41.893 に答える