2016-11-10 13 views
-7

良い日、私には問題があり、私は一日中、道のりを見つけようとしています。jqueryの入力と選択問題

スナップショットはformです。選択フィールドが変更され、空ではなく入力フィールドも空でない場合にボタンを有効にしたい場合。

以下は私が試したことです。 現在入力ボックスに戻るとボタンが有効になります。それが無効になって起動するよう

skillButton = function() { 
 
    var skill = $.trim($("#skillauto").val()); 
 
    //$('select[name=selector]').val() 
 
    var level = $("#level :selected").val() 
 
    //if((skill !== '') && (level !== '')) && (level !== '') 
 
    if ((skill !== '') && (level !== '')) { 
 
    //alert(level); 
 
    $('form.js-form-skills') 
 
     .find('button#putskill') 
 
     .prop('disabled', false); 
 
    } else { 
 

 
    $('button#putskill').prop("disabled", true); 
 

 
    }; 
 
}
<div class="hidden" id="skills"> 
 
    <div class="form-row form-wrapper cf"> 
 

 
    <div class="control is-horizontal"> 
 
     <div class="control is-grouped"> 
 
     <p class="control is-expanded"> 
 
      <!-- <span class="js-awesomplete"> --> 
 
      <input maxlength="20" id="skillauto" name="skill" placeholder="Add Skill" class="capitalize input is-fullwidth" value="" type="text"> 
 
      <!-- </span> --> 
 
     </p> 
 
     <p class="control is-expanded"> 
 
      <span class="select is-fullwidth"> 
 
      <select id="level" name="level"> 
 
    \t \t <option value="" class="hidden">Experience Level</option> 
 
    \t \t <?php if($skillevels): 
 
    \t \t \t \t foreach($skillevels AS $level):?> 
 
    \t \t   <option value="<?=$level->level_id?>"><?=$level->level_name?></option> 
 
    \t \t \t \t <?php endforeach; 
 
    \t \t \t \t endif;?> 
 
    \t  </select> 
 
\t </span> 
 
     </p> 
 

 
     </div> 
 
    </div> 
 
    <p class="control"> 
 
     <input type="hidden" name="skproceed" value="yea"> 
 
     <button class="button is-primary" id="putskill"><span>Submit</span> 
 
     </button> 
 

 
    </p> 
 
    </div> 
 
</div>

+0

問題は何ですか?問題を再現するための最低限のコードを入力してください。 – APAD1

+0

そしてselectの実装方法を教えてください。どうしたら空になるの? – jonzee

+0

が私の質問を更新しました。 –

答えて

0

enter image description here

あなたは、元のHTMLでボタンの属性で disabledを置く必要があります。

$("#level").change(skillButton); 
$("#skillauto").on("input", skillButton); 
+0

ああ、これはちょうど私の一日を救う、ありがとう男私は非常に感謝します。 @Barmar –

0

まずあなたは何の要素としては存在しない。この

$('#level').change(function() { 
    var skill = $("#skillauto").val(), 
     level = $("#level:selected").val() 
     //if((skill !== '') && (level !== '')) && (level !== '') 
    if ((skill !== '') && (level !== '')) { 
     //alert(level); 
     $('button#putskill').prop("disabled", false); 
    } else { 

     $('button#putskill').prop("disabled", true); 

    }; 
    }); 

第二のように選択ボックス の変化にこの機能を維持する必要がありますを選択または入力がで変更されたとき、あなたはあなたの関数を実行することができます$( 'form.js-form-skills')はif文に書かれています。

+0

そこには、その部分を共有していない、修正のおかげで –

0

ここでは動作コードがありますので、入力の中に何かを書いてからボタンを有効にしてください。

function onChange() { 
 
    console.log('input change') 
 
    var skill = $.trim($("#skillauto").val()); 
 
    //$('select[name=selector]').val() 
 
    var level = $("#level :selected").val() 
 
    //if((skill !== '') && (level !== '')) && (level !== '') 
 
    if ((skill !== '') && (level !== '')) { 
 
    //alert(level); 
 
     $('button#putskill') 
 
     .prop('disabled', false); 
 
    } else { 
 

 
    $('button#putskill').prop("disabled", true); 
 
    }; 
 
} 
 

 
$('#skillauto').change(onChange); 
 
$('#level').change(onChange);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="hidden" id="skills"> 
 
    <div class="form-row form-wrapper cf"> 
 

 
    <div class="control is-horizontal"> 
 
     <div class="control is-grouped"> 
 
     <p class="control is-expanded"> 
 
      <!-- <span class="js-awesomplete"> --> 
 
      <input maxlength="20" id="skillauto" name="skill" placeholder="Add Skill" class="capitalize input is-fullwidth" value="" type="text"> 
 
      <!-- </span> --> 
 
     </p> 
 
     <p class="control is-expanded"> 
 
      <span class="select is-fullwidth"> 
 
      <select id="level" name="level"> 
 
    \t \t <option value="" class="hidden">Experience Level</option> 
 
    \t \t <?php if($skillevels): 
 
    \t \t \t \t foreach($skillevels AS $level):?> 
 
    \t \t   <option value="<?=$level->level_id?>"><?=$level->level_name?></option> 
 
    \t \t \t \t <?php endforeach; 
 
    \t \t \t \t endif;?> 
 
    \t  </select> 
 
    </span> 
 
     </p> 
 

 
     </div> 
 
    </div> 
 
    <p class="control"> 
 
     <input type="hidden" name="skproceed" value="yea"> 
 
     <button disabled class="button is-primary" id="putskill"><span>Submit</span> 
 
     </button> 
 

 
    </p> 
 
    </div> 
 
</div>

関連する問題