2012-11-29 15 views
6

का प्रतिशत संपादितjQuery: दो नंबर

जो कोई समर्थन ... सबसे अच्छा काम कर रहे स्क्रिप्ट मैं आशा व्यक्त की कि मैं दूसरों जो एक ही समाधान की तलाश में है मदद कर सकता है में आप के साथ साझा करेंगे की पेशकश के लिए धन्यवाद:

$(document).ready(function(){ 
$("#price1, #price2").keyup(function() { 
    var priceOne = parseFloat($("#price1").val()); 
    var priceTwo = parseFloat($("#price2").val()); 
    var rate = parseFloat($("#rate").val()); 
    if ($("#price1").val() && $("#price2").val()){  
    $('#rate').val(((priceTwo - priceOne)/priceOne * 100).toFixed(2)); 
} 

}); 

$("#rate").keyup(function() { 
    var priceOne = parseFloat($("#price1").val()); 
    var rate = parseFloat($("#rate").val()); 

    if ($("#rate").val() && $("#price1").val() && $("#price2").val()){ 
$('#price2').val(((priceOne * rate)/ 100 + priceOne).toFixed(2)); 
} 
}); 
}) 

इसके अलावा, आप इसे इस LINK


मैं निम्नलिखित परीक्षण कर सकते हैं नैतिक प्रश्न:

कृपया दो संख्याओं के बीच प्रतिशत की गणना करने में मदद करें। मैंने एक तरह से कोशिश की, लेकिन मैं सफल नहीं हुआ। कृपया मुझे बताओ कि क्या गलत है, या यदि आप अन्य स्क्रिप्ट जो मेरी मदद कर सकता है

मेरी स्क्रिप्ट सिफारिश कर सकते हैं मैं सराहना करेंगे:

<html> 
<head> 
<script type="text/javascript"> 
$("#rate").text(function() { 
    var result = (parseInt(($("#price1").text(), 10) * 100)/ parseInt($("#price2").text(), 10)); 
    if (!isFinite(result)) result = 0; 
    return result; 
});? 
</script> 

</head> 
<body> 
<div id="price1"><label><input id="price1" type="text"></label></div> 
<div id="price2"><label><input id="price2" type="text"></label></div> 
<div id="rate"><label><input id="rate" type="text"></label></div> 


</body> 
</html> 
+0

क्यों '?' था? शायद Typo की समस्या .. –

+0

क्षमा करें, शायद यह गलत है, मैं इस क्षेत्र में नया हूं –

+0

मैं भी नया हूं .. मुझे लगता है कि आपने अन्य साइटों से कॉपी की है, जो ** 'छुपा' ** विशेष पात्र उत्पन्न करता है .. '? 'हटाएं और शायद यह काम करेगा :) आदििल के जवाब भी देखें। –

उत्तर

8

उपयोग val() बजाय text() द्वारा इनपुट मूल्य मिलता है, DOM का इंतजार करने के लिए $(function(){}) का उपयोग करें तैयार। और तत्वों के लिए एक ही आईडी का उपयोग न करें।

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function() { 
    $("#price1, #price2").change(function() { // input on change 
    var result = parseFloat(parseInt($("#price1").val(), 10) * 100)/ parseInt($("#price2").val(), 10); 
    $('#rate').val(result||''); //shows value in "#rate" 
    }) 
}); 
</script> 
</head> 
<body> 
<div id="price-div1"><label>price1</label><input id="price1" type="text"></div> 
<div id="price-div2"><label>price2</label><input id="price2" type="text"></div> 
<div id="rate-div"><label>rate</label><input id="rate" type="text">%</div> 
</body> 
</html> 
+0

धन्यवाद! यह वास्तव में मेरी मदद करता है !!! –

+0

@ धामू धन्यवाद! – mattn

1

हो सकता है आप parseFloat (उपयोग करना चाहते हैं) बजाय parseInt()

<div id="price-div1"></label>price1<label><input id="price1" type="text"></div> 
    <div id="price-div2"></label>price2<label><input id="price2" type="text"></div> 
    <div id="rate-div"><label>rate</label><input id="rate" type="text">%</div> 

    <script type="text/javascript"> 
     $(function() { 
      $("#price1, #price2").change(function() { 
       var result = parseFloat(parseFloat($("#price1").val(), 10) * 100)/ parseFloat($("#price2").val(), 10); 
       $('#rate').val(result||''); 
      }) 
     }); 
    </script> 
+0

हाय मेरी मदद करने के लिए धन्यवाद। मैंने अभी भी अखरोट की कोशिश की है, मुझे डीआईवी में प्राप्त नहीं होता है, जहां कोई परिणाम –

3

आप कुछ समस्या है,

  1. ? पाठ समारोह के संश्लेषण बंद करने के बाद।
  2. दोहराया आईडी price1 और दोनों div के लिए price2 और बक्सें
  3. आप पाठ बॉक्स से इनपुट तो आप वैल() पाठ()

आप फिक्स्ड कोड के बजाय का उपयोग करना चाहिए चाहते हैं

Live Demo

एचटीएमएल

<div id="dprice1"><label><input id="price1" type="text" value="80" /></label></div> 
<div id="dprice2"><label><input id="price2" type="text" value="100" /></label></div> 
<div id="drate"><label><input id="rate" type="text"></label></div> 
<input id="btnCal" type="button" value="Calculate"> 

जावास्क्रिप्ट

$("#btnCal").click(function() { 
    $("#rate").val(function() { 
     var result = parseInt($("#price1").val()) * 100/parseInt($("#price2").val()); 
     if (!isFinite(result)) result = 0; 
     return result; 
    }); 
});​ 
+0

धन्यवाद है, लेकिन अभी भी कोई परिणाम नहीं है :( –

+0

कुछ और फिक्स हैं ... – Adil

+0

मैंने आपका कोड तय कर लिया है और लाइव डेमो जोड़ा है। – Adil

1

इस तरह का प्रयोग करें,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<script type="text/javascript"> 
$("#rate").text(function() { 
    var result = (parseFloat(($("#price1").val(), 10) * 100)/ parseFloat($("#price2").val(), 10)); 
    if (!isFinite(result)) result = 0; 
    return result; 
}); 
</script> 
<body> 
<div class="price1"><label><input id="price1" type="text"></label></div> 
<div class="price2"><label><input id="price2" type="text"></label></div> 
<div class="rate"><label><input id="rate" type="text"></label></div> 
</body> 
</html> 

बदला गया div class, और इनपुट तत्व के लिए val()

2

चेक इस बेला

http://jsfiddle.net/j3WY3/5/

कुछ सुधार किए गए हैं:

  • हटाया ? के रूप में हर किसी को कहते हैं।
  • परिवर्तन .text().val()
  • दोनों div और input को स्क्रिप्ट टैग की अंतिम पंक्ति में एक ही आईडी
संबंधित मुद्दे