2016-03-29 13 views
-2

varsayalım ben şimdi 4 girdi alanı vardır:jQuery - sıralamasında continouns uygulamak için iyi bir yoldur Ne

<table> 
<tr><th></th><th>Factor 1</th></tr> 
<tr><td>Company A</td><td><input type="text" name="text1" id="text1"></td></tr> 
<tr><td>Company B</td><td><input type="text" name="text2" id="text2"></td></tr> 
<tr><td>Company C</td><td><input type="text" name="text3" id="text3"></td></tr> 
<tr><td>Company D</td><td><input type="text" name="text4" id="text4"></td></tr> 
</table> 

girişler benzersiz her giriş alanına 1 ila 4 arasında bir tam sayıdır vardır. Bu, Şirket'un bu Faktörü için en iyi olduğu bir sıralama gibidir ve bu da ikincidir ve böyle devam eder. Örneğin

:

  • biz girdi 1, 3, biz 2 sıralamasında eksik uyarır.
  • 1, 2, 4 girdiğimizde, 3 eksik olduğunu uyarırız.

Girişler gerekli değildir, ancak girişler olduğunda, sıra 1 ile 4 arasındadır Burada

I güvenilir kod olmalıdır.

function checkMissingRank(object){ 
    object.change(function() { 
    var max = 0; 
    var actSum = 0; 
    var rows = object.length; 

    for(var i=1 ; i<=rows ; i++){ 
     if($('#text'+i+'').val() != ""){ 
      var actVal = parseInt($('#text'+i+'').val()); 
      //alert("actVal: "+actVal); 
      actSum = actSum + actVal; 
      if(actVal>max){ 
       max=actVal; 
       //alert("max: "+ max); 
      } 
     } 
    } 
    //alert("actSum: "+ actSum); 

    totalSum = ((1+max)*max)/2; 
    //alert("totalSum: "+ totalSum); 

    var missVal = totalSum - actSum; 
    //alert("missVal "+ missVal); 

    if(missVal != 0){ 
     alert("Ranking "+missVal+" is missing."); 
    } 
    }); 
} 
checkMissingRank($('input[name^="text"]')); 

Sadece bir Değer eksik olduğunda (1, 2, 3, 4'den eksik), iyi çalışıyor. Ama 1, 2 ikisi de eksik olduğunda, 1 ve 2'nin toplamı olan 3'e dönülür. Bunu yapmak için daha iyi bir yol var mı?

+1

Sorunuz açık değil. 4 giriş metni doldurulmalı mı? – Uchsun

+0

http://www.w3schools.com/tags/att_input_required.asp adresindeki 'required' özelliklerine bir göz attınız. – Nirus

+0

için aradığınız şeyi yapar. Lütfen biraz daha spesifik olmaya çalışın. Örneklerinizde, kullanıcının bir değeri girdiği (veya kaçırdığı) olmadığı net değildir. Belki de bunun arkasındaki gerçek gereksinimi açıklarsanız, bir formun 4 giriş alanında 1'den 4'e kadar olan değerleri sorduğunu düşünmek zor bir zamanım olabilir. – reto

cevap

0

HTML:

<input type="text" name="text1" id="text1"> 
<input type="text" name="text2" id="text2"> 
<input type="text" name="text3" id="text3"> 
<input type="text" name="text4" id="text4"> 
<input type="button" id="btnTest"> 

ve jQuery:

$("#btnTest").click(function() { 
     $('input[type=text]').each(function() { 
     var msg = $(this).prop("id"); 
     if ($(this).val() == "") { 
      switch (msg) { 
      case ("text1"): 
       alert('miss 1'); 
       break; 
      case ("text2"): 
       alert('miss 2'); 
       break; 
      case ("text3"): 
       alert('miss 3'); 
       break; 
      case ("text4"): 
       alert('miss 4'); 
       break; 
      } 
     } 

     }) 
    }); 

Fiddle Numune https://jsfiddle.net/shree/5ucxau2n/1/

Ben düğmesi click.Hope üzerindeki yardım bir örnek oluşturun.

+0

Üzgünüm, yanlış yola benim sorun açıkladı düşünüyorum. Lütfen güncellemelerime bakın. – user3368506

0

Bu, eksik olan her girişi uyarır. Sadece eksik tüm giriş öğelerin listesini isterseniz

Bu

$(function(){ 
 
    $("button").on("click", function(){ 
 
    $("input").each(function(){ 
 
     if($(this).val() == ""){ 
 
     alert($(this).attr("id") + " is missing"); 
 
     } 
 
    }) 
 
    }) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form name="myForm" id="myForm"> 
 
    <input type="text" name="text1" id="text1"> 
 
    <input type="text" name="text2" id="text2"> 
 
    <input type="text" name="text3" id="text3"> 
 
    <input type="text" name="text4" id="text4"> 
 
</form> 
 
<button>Enter</button>

olduğunu. Sadece bir uyarı kutusu:

$("button").on("click", function(){ 
 
    var str = "" 
 
    $("input").each(function(){ 
 
    if($(this).val() == ""){ 
 
     str += $(this).attr("id") + " and " 
 

 
    } 
 
    }) 
 
    alert(str + " is missing"); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<form name="myForm" id="myForm"> 
 
    <input type="text" name="text1" id="text1" placeholder = "type 1"> 
 
    <input type="text" name="text2" id="text2" placeholder = "type 2"> 
 
    <input type="text" name="text3" id="text3" placeholder = "type 3"> 
 
    <input type="text" name="text4" id="text4" placeholder = "type 4"> 
 
</form> 
 
<button>Enter</button>

Herhangi Sorular? bilmeme izin ver.

+0

Üzgünüm, yanlış yola benim sorun açıkladı düşünüyorum. Lütfen güncellemelerime bakın. – user3368506

İlgili konular