जिन्हें आप नीचे देख मैं, एक विशिष्ट क्षेत्र में इन 4 कंपनियों में से उपयोगकर्ता इनपुट महत्व (रैंकिंग) जाने के लिए 4 इनपुट फ़ील्ड है:jQuery - लागू अद्वितीय निरंतर रैंकिंग
<table>
<tr><th></th><th>Area 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>
इनपुट फ़ील्ड की आवश्यकता नहीं है और 1 से 4 तक पूर्णांक होना चाहिए (मान लीजिए कि कोई डुप्लिकेट नहीं है),
उपयोगकर्ता रैंकिंग को कूद नहीं सकता है जिसका अर्थ है कि रैंकिंग अद्वितीय और निरंतर होने की आवश्यकता है।
उदाहरण के लिए, * हम इनपुट 1
, 3
कर सकते हैं, 2
के साथ-साथ 4
, 2
, 1
, 3
।
लेकिन जब इनपुट 3
, 1
जैसा है, तो हमें 2
को याद रखने की आवश्यकता है।
जब हम 3
इनपुट करते हैं, तो हमें 1
और 2
दोनों को याद करने की आवश्यकता है।
यहाँ रैंकिंग की जाँच करने के लिए अपने कोड है:
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());
//The actual sum of the values
actSum = actSum + actVal;
if(actVal>max){
//Use the max to calculate the total sum should be
max=actVal;
}
}
}
//The total sum should be
totalSum = ((1+max)*max)/2;
//The difference is the missing value
var missVal = totalSum - actSum;
if(missVal != 0){
alert("Ranking "+missVal+" is missing.");
}
});
}
checkMissingRank($('input[name^="text"]'));
यह ठीक काम करता है जब सिर्फ एक मूल्य याद आ रही है, लेकिन जब वहाँ 2 मान अनुपलब्ध (1
, 2
) कर रहे हैं, यह सिर्फ योग वापसी (3) उनमें से। मैं इस पर कैसे सुधार करूं?
एक त्वरित सवाल है, क्या मतलब है आपका यहां, लगभग 1,3,2 और 4,2,1,3 मान्य हैं, और 3,1 अमान्य है !!! – ameenulla0007
@ ameenulla0007 यदि आप नोटिस करते हैं, तो '2' गुम है – user3368506
यहां तक कि 1,3,2 नंबर 4 गायब है! – ameenulla0007