2017-04-14 19 views
0

すべての入力フィールドと選択されたすべてのドロップダウンフィールドが空だが、運がない場合、無効な属性をボタンに追加しようとしています。ここ は、フォームの:jqueryで入力フィールドと選択フィールドが空の場合、ボタンに無効な属性を追加する方法

<form id="ridefinancing"> 
<fieldset id="details"> 
    <h3 class="fs-title">Your Details</h3> 
    <div id="div_id_firstname" class="form-group required"> 
     <label for="id_firstname" class="control-label col-md-3 requiredField"> Firstname<span class="asteriskField">*</span> </label> 
     <div class="controls col-md-9"> 
      <input class="form-control gradient" id="id_firstname" maxlength="30" name="firstname" style="margin-bottom: 10px" type="text" /> 
     </div> 
    </div> 
    <div id="div_id_lastname" class="form-group required"> 
     <label for="id_lastname" class="control-label col-md-3 requiredField"> Lastname<span class="asteriskField">*</span> </label> 
     <div class="controls col-md-9 "> 
      <input class="form-control gradient" id="id_lastname" maxlength="30" name="lastname" style="margin-bottom: 10px" type="text" /> 
     </div> 
    </div> 
    <div id="div_id_email" class="form-group required"> 
     <label for="id_email" class="control-label col-md-3 requiredField"> Email<span class="asteriskField">*</span> </label> 
     <div class="controls col-md-9"> 
      <input class="form-control gradient" id="id_email" maxlength="30" name="email" style="margin-bottom: 10px" type="text" /> 
     </div> 
    </div> 
    <div id="div_id_phone" class="form-group required"> 
     <label for="id_phone" class="control-label col-md-3 requiredField"> Phone<span class="asteriskField">*</span> </label> 
     <div class="controls col-md-9 "> 
      <input class="form-control gradient" id="id_phone" maxlength="30" name="phone" style="margin-bottom: 10px" type="text" /> 
     </div> 
    </div> 
    <div id="div_id_birthday" class="form-group required"> 
     <label for="id_birthday" class="control-label col-md-3 requiredField"> Birthday<span class="asteriskField">*</span> </label> 
     <div class="controls col-md-9"> 
      <div class="row"> 
       <div class="col-xs-4"> 
        <select class="form-control gradient" id="id_day"> 

        </select> 
       </div> 
       <div class="col-xs-4"> 
        <select class="form-control gradient" id="id_month"> 

        </select> 
       </div> 
       <div class="col-xs-4"> 
        <select class="form-control gradient" id="id_year"> 
        </select> 
       </div> 
      </div> 
     </div> 
    </div> 
    <div id="div_id_status" class="form-group required"> 
     <label for="id_status" class="control-label col-md-3 requiredField"> Marital Status<span class="asteriskField">*</span> </label> 
     <div class="controls col-md-9"> 
      <select class="form-control gradient" id="id_status"> 
       <option>Please Select</option> 
       <option>Single</option> 
       <option>Married</option> 
       <option>Divorced</option> 
      </select> 
     </div> 
    </div> 
    <div id="div_id_dlicense" class="form-group required"> 
     <label for="id_dlicense" class="control-label col-md-3 requiredField"> Driving License<span class="asteriskField">*</span> </label> 
     <div class="controls col-md-9"> 
      <select class="form-control gradient" id="id_dlicense"> 
       <option>Please Select</option> 
       <option>032654897</option> 
      </select> 
     </div> 
    </div> 
     <button disabled="disabled" type="submit" class="vhb next action-button" id="btn1">Continue</button> 
</fieldset> 

私は入力フィールドのこのコードを試みたが、まだ私はそれが原因で誤ったセレクターのだ疑い、と私は選択フィールドのために、まだコードを追加しhaventは を働いていません。

<script type="text/javascript"> 
$(document).ready(function() { 
    var $fields = $('#details :input'); 
    $fields.keyup(function() { 
     var $emptyFields = $fields.filter(function() { 
      return $.trim(this.value) === ''; 
     }); 
     if (!$emptyFields.length) { 
      $('#btn1').prop('disabled', true); 
     } else { 
      $('#bt1').prop('disabled', false); 
     } 
    }); 
}); 

+0

この機能は文書の準備ができていることを確認していますが、すべての入力が空になりますか?だから、何がポイント。ユーザーが値を入力すると、もう一度チェックしていませんか?あなたはまた、各入力onchangeを見る必要があります。 – RemyaJ

+0

JSエラーがありますか? '.val()'関数も使用できます – Cyril

+0

はい私はもう一度チェックしません。私はそれが次のフォームにスライドしないように検証を実装しようとしています。このようにhttps://codepen.io/atakan/pen/gqbIz – dashred

答えて

0

まずステップ:それはデフォルトでは無効になって作る 第二ステップ:jQueryので

on input change : function 
    if(input 1.val()=="" || input 2.val()=="" /* etc... */) then 
    set disabled to true 
    else 
    remove disabled attribute 
    end if 
end function 

ところで、この疑似コードを以下の機能を、作るdisabledなければならないprop必要がありますがattrとなります。 JQueryでは、$(/*selector*/).removeAttr(/*attribute*/)を使用してそれを達成できます。

0

$('#a').on('keyup paste propertychange input', function() { 
 
    if (this.value === "") $('#b').prop('disabled', true); 
 
    else $('#b').removeAttr('disabled'); 
 
}); 
 
$('#b').on('keyup paste propertychange input', function() { 
 
    if (this.value === "") $('#c').prop('disabled', true); 
 
    else $('#c').removeAttr('disabled'); 
 
}); 
 
$('#c').on('keyup paste propertychange input', function() { 
 
    if (this.value === "") $('#d').prop('disabled', true); 
 
    else $('#d').removeAttr('disabled'); 
 
}); 
 
$('#d').on('keyup paste propertychange input', function() { 
 
    if (this.value === "") $('#e').prop('disabled', true); 
 
    else $('#e').removeAttr('disabled'); 
 
}); 
 
$('#e').on('keyup paste propertychange input', function() { 
 
    if (this.value === "") $('#f').prop('disabled', true); 
 
    else $('#f').removeAttr('disabled'); 
 
}); 
 
$('#f').on('keyup paste propertychange input', function() { 
 
    if (this.value === "") $('#g').prop('disabled', true); 
 
    else $('#g').removeAttr('disabled'); 
 
}); 
 
$('#g').on('keyup paste propertychange input', function() { 
 
    if (this.value === "") $('#h').prop('disabled', true); 
 
    else $('#h').removeAttr('disabled'); 
 
}); 
 
$('#h').on('keyup paste propertychange input', function() { 
 
    if (this.value === "") $('#i').prop('disabled', true); 
 
    else $('#i').removeAttr('disabled'); 
 
}); 
 
$('#i').on('keyup paste propertychange input', function() { 
 
    if (this.value === "") $('#j').prop('disabled', true); 
 
    else $('#j').removeAttr('disabled'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> 
 
<form id="ridefinancing"> 
 
<fieldset id="details"> 
 
    <h3 class="fs-title">Your Details</h3> 
 
    <div id="div_id_firstname" class="form-group required"> 
 
     <label for="id_firstname" class="control-label col-md-3 requiredField"> Firstname<span class="asteriskField">*</span> </label> 
 
     <div class="controls col-md-9"> 
 
      <input id="a" class="form-control gradient" id="id_firstname" maxlength="30" name="firstname" style="margin-bottom: 10px" type="text" /> 
 
     </div> 
 
    </div> 
 
    <div id="div_id_lastname" class="form-group required"> 
 
     <label for="id_lastname" class="control-label col-md-3 requiredField"> Lastname<span class="asteriskField">*</span> </label> 
 
     <div class="controls col-md-9 "> 
 
      <input id="b" disabled="disabled" class="form-control gradient" id="id_lastname" maxlength="30" name="lastname" style="margin-bottom: 10px" type="text" /> 
 
     </div> 
 
    </div> 
 
    <div id="div_id_email" class="form-group required"> 
 
     <label for="id_email" class="control-label col-md-3 requiredField"> Email<span class="asteriskField">*</span> </label> 
 
     <div class="controls col-md-9"> 
 
      <input id="c" disabled="disabled" class="form-control gradient" id="id_email" maxlength="30" name="email" style="margin-bottom: 10px" type="text" /> 
 
     </div> 
 
    </div> 
 
    <div id="div_id_phone" class="form-group required"> 
 
     <label for="id_phone" class="control-label col-md-3 requiredField"> Phone<span class="asteriskField">*</span> </label> 
 
     <div class="controls col-md-9 "> 
 
      <input id="d" disabled="disabled" class="form-control gradient" id="id_phone" maxlength="30" name="phone" style="margin-bottom: 10px" type="text" /> 
 
     </div> 
 
    </div> 
 
    <div id="div_id_birthday" class="form-group required"> 
 
     <label for="id_birthday" class="control-label col-md-3 requiredField"> Birthday<span class="asteriskField">*</span> </label> 
 
     <div class="controls col-md-9"> 
 
      <div class="row"> 
 
       <div class="col-xs-4"> 
 
        <select id="e" disabled="disabled" class="form-control gradient" id="id_day"> 
 
        <option>1</option> 
 
        <option>2</option> 
 
        <option>3</option> 
 
        </select> 
 
       </div> 
 
       <div class="col-xs-4"> 
 
        <select id="f" disabled="disabled" class="form-control gradient" id="id_month"> 
 
         <option>Please Select</option> 
 
        <option>1</option> 
 
        <option>2</option> 
 
        <option>3</option> 
 
        </select> 
 
       </div> 
 
       <div class="col-xs-4"> 
 
        <select id="g" disabled="disabled" class="form-control gradient" id="id_year"> 
 
\t \t \t \t \t <option>2014</option> 
 
        <option>2015</option> 
 
        <option>2016</option> 
 
        </select> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    <div id="div_id_status" class="form-group required"> 
 
     <label for="id_status" class="control-label col-md-3 requiredField"> Marital Status<span class="asteriskField">*</span> </label> 
 
     <div class="controls col-md-9"> 
 
      <select id="h" disabled="disabled" class="form-control gradient" id="id_status"> 
 
       <option>Please Select</option> 
 
       <option>Single</option> 
 
       <option>Married</option> 
 
       <option>Divorced</option> 
 
      </select> 
 
     </div> 
 
    </div> 
 
    <div id="div_id_dlicense" class="form-group required"> 
 
     <label for="id_dlicense" class="control-label col-md-3 requiredField"> Driving License<span class="asteriskField">*</span> </label> 
 
     <div class="controls col-md-9"> 
 
      <select id="i" disabled="disabled" class="form-control gradient" id="id_dlicense"> 
 
       <option>Please Select</option> 
 
       <option>032654897</option> 
 
      </select> 
 
     </div> 
 
    </div> 
 
     <button id="j" disabled="disabled" type="submit" class="vhb next action-button" id="btn1">Continue</button> 
 
</fieldset>

私は正しい方法を行っている場合は、フォームとスクリプトを確認してください。それがあなたのために働くことを願っています。

関連する問題