2017-04-26 15 views
0

私はアプリケーションを開発していましたが、ボタンへの2つの入力を確認するのに驚いています。removeClass2つの入力を検証する

$('input#firstInput').blur(function(){ 
 
    tmpval2 = $('input#secondInput').val(); 
 
    tmpval = $(this).val(); 
 
\t 
 
    if(tmpval == '') { 
 
     $("#myButton").addClass('disabled') 
 
    } 
 
    else if(tmpval2 == ''){ 
 
     $("#myButton").addClass('disabled') 
 
    } else { 
 
     $("#myButton").removeClass('disabled') 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<hr> 
 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col-md-12"> 
 
    
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
     <h3 class="panel-title"> Validate Two Inputs</h3> 
 
     </div> 
 
    
 
    
 
    <div class="panel-body"> 
 
     <input type="text" id="firstInput" placeholder="First Value" /> 
 
     <br><br> 
 
     <input type="text" id="secondInput" placeholder="Second Value" /> 
 
     <br><br> 
 
     <button id="myButton" class="btn btn-success disabled"> Send 
 
     </button> 
 
    </div> 
 
    
 
    
 
    </div> 
 
    
 
    
 
    </div> 
 
    </div> 
 
</div>

ここで私はそのために開発されたどのようなコードです。

Fiddle Link

答えて

1

おそらくは、第1の入力の値または第二の入力かどうかをチェックし、その後、キー押下をリッスンする必要があります空です。そうであれば、ボタンを無効にします。それ以外の場合は、両方の入力に値が設定されているため、無効なクラスを削除できます。

HTMLの唯一の変更点は、チェックする必要のあるすべての入力フィールドにクラスinput-fieldを追加したことです。

$('.input-field').keyup(function() { 
 
    var firstValue = $('#firstInput').val(), 
 
     secondValue = $('#secondInput').val(); 
 

 
    if (firstValue == '' || secondValue == '') { 
 
     $("#myButton").addClass('disabled'); 
 
    } else { 
 
     $("#myButton").removeClass('disabled'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<hr> 
 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col-md-12"> 
 

 
     <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
      <h3 class="panel-title"> Validate Two Inputs</h3> 
 
     </div> 
 
     <div class="panel-body"> 
 
      <input type="text" class="input-field" id="firstInput" placeholder="First Value" /> 
 
      <br><br> 
 
      <input type="text" class="input-field" id="secondInput" placeholder="Second Value" /> 
 
      <br><br> 
 
      <button id="myButton" class="btn btn-success disabled">Send</button> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

値が存在する場合にのみチェックし、ヌルの場合はまだ送信ボタンをクリックします。 –

+0

@RiotZeastCaptainごめんなさい、 打ち間違え。 keypressでなければならない –

0

ファーストクラスを削除し、後でそれはあなたが変更イベントでそれを行う必要があり、一度

$('.inputs').change(function() { 
 
    $("#myButton").removeClass('disabled'); 
 

 
    var isValid = false; 
 

 
    $('.inputs').each(function() { 
 
    if ($(this).val() && $(this).val().length) { 
 
     isValid = true; 
 

 
     return false; // same as break; 
 
    } 
 
    }); 
 

 
    if (!isValid) { 
 
    $("#myButton").addClass('disabled') 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<hr> 
 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col-md-12"> 
 

 
     <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
      <h3 class="panel-title"> Validate Two Inputs</h3> 
 
     </div> 
 

 

 
     <div class="panel-body"> 
 
      <input type="text" class="inputs" placeholder="First Value" /> 
 
      <br><br> 
 
      <input type="text" class="inputs" placeholder="Second Value" /> 
 
      <br><br> 
 
      <button id="myButton" class="btn btn-success disabled"> Send 
 
     </button> 
 
     </div> 
 

 

 
     </div> 
 

 

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

+0

両方の入力が確認されていません。 –

+0

1つの入力フィールドに対してのみ機能し、ユーザーが入力フィールドの文字を後ろに置いた場合は機能しません。最初はisValidをtrueにしてください。フィールドが空の場合は、それを偽にしてチェックしてください。 –

+0

両方のケースが必要です –

0

で両方の入力をチェックする追加。 私の解決策がある - 高速:)

例:

$('input.required').keyup(function(){ 

/* Validate all required fields */ 
var err = 0; 
$('input.required').each(function(){ 
    var input = $(this); 
    if(input.val().length == 0){ 
    err++; 
    } 
}); 

if(!err){ 
    $('#myButton').removeClass('disabled'); 
} 
}); 

https://jsfiddle.net/kgynth5x/11/

+1

良い解決策! 1つの問題は、ユーザーがフィールドからすべての文字を削除したときにボタンがクリック可能であるということです。 –

+0

それを簡単に修正してください:) $( '#myButton')。prop( 'disabled'、true); クラスを削除した後、それをfalseに設定します:) –

+0

完全に動作するここの例:https:// jsfiddle。net/kgynth5x/11/ –

1

このコードを試してみてくださいまたはフィドルリンク

JSFiddle

JavaScriptコードの下に通過 -

$('input').blur(function(){ 
     $("#myButton").removeClass('disabled'); 
     tmpval = $(this).val(); 
     if(tmpval == '') { 
      $("#myButton").addClass('disabled'); 
     } 
     if($(this).siblings('input').val() == ''){ 
     $("#myButton").addClass('disabled'); 
     } 
    }); 
+0

シンプルで最高のものを探す –

+0

@RiotZeastCaptainあなたを手伝ってくれてありがとう♪ –

+1

*私を覚えているような他の入力があるとうまくいかない* – Justinas

0

チェックこれはあなたの問題を解決する可能性がある場合

おかげ

$('input#firstInput').keyup(function(){ 
 
\t \t var tmpval = $(this).val(); 
 
    var tmpval1 = ""; 
 
    $('input#secondInput').keyup(function(){ 
 
     tmpval1 = $(this).val(); 
 
     checkValid(tmpval,tmpval1); 
 
    }); 
 
    checkValid(tmpval,tmpval1); 
 
}); 
 

 
function checkValid(tmpval,tmpval1){ 
 
    if(tmpval == '' || tmpval1 == '') { 
 
\t   $("#myButton").addClass('disabled') 
 
\t } 
 
    else { 
 
     $("#myButton").removeClass('disabled') 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<hr> 
 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col-md-12"> 
 
    
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading"> 
 
     <h3 class="panel-title"> Validate Two Inputs</h3> 
 
     </div> 
 
    
 
    
 
    <div class="panel-body"> 
 
     <input type="text" id="firstInput" placeholder="First Value" /> 
 
     <br><br> 
 
     <input type="text" id="secondInput" placeholder="Second Value" /> 
 
     <br><br> 
 
     <button id="myButton" class="btn btn-success disabled"> Send 
 
     </button> 
 
    </div> 
 
    
 
    
 
    </div> 
 
    
 
    
 
    </div> 
 
    </div> 
 
</div>