मैंने एक जावास्क्रिप्ट फ़ंक्शन लिखा है जो संख्याओं की एक सरणी लेता है, कुछ सरल गणित करता है, और परिणाम के साथ एक वाक्य देता है। मैं चाहता हूं कि यह फ़ंक्शन html पृष्ठ पर उपयोगकर्ता-इनपुट मानों का उपयोग करके चलाए।

जिस तरह से मैं इसे कर रहा हूं वह दस्तावेज़ से बाहर एक सरणी बनाकर है। ElementbyId ("सचैंडसुच")। मान, और फिर उस सरणी को फ़ंक्शन के पैरामीटर के रूप में पास करना। हालांकि, जब मैं अपना एचटीएमएल और इनपुट नंबर खोलता हूं, तो मेरा 'गणना करें' बटन दबाएं (जो ऑनक्लिक का उपयोग करके जेएस फ़ंक्शन चलाने के लिए सेट है) यह जेएस फ़ंक्शन से रिक्त टेम्पलेट शाब्दिक देता है। "ब्ला ब्लाह ___, ब्ला ब्लाह 0." जब मैं अपने आप जावास्क्रिप्ट चलाता हूं, तो यह ठीक काम करता है, इसलिए मैंने आश्वस्त किया है कि समस्या मेरा कार्य नहीं है - यह सिर्फ इतना है कि फ़ंक्शन उपयोगकर्ता इनपुट मान प्राप्त नहीं कर रहा है। क्या मेरा बटन ऑनक्लिक करता है" -" को फ़ंक्शन में मानों को पारित करने से पहले किसी प्रकार की पुष्टि/सबमिट करने की आवश्यकता है? या मेरी सरणी सही ढंग से नहीं बनाई गई है?

मैंने सेकंड, मिनट, दिन, (से, मील, दा) आदि पर अपने सभी चर/आईडी का नाम बदलने की कोशिश की, क्योंकि एकमात्र कारण जो मैं सोच सकता था वह यह था कि वे कहीं न कहीं पूर्वनिर्धारित थे। मुझे लगता है कि उपयोगकर्ता इनपुट को मान्य करने के कुछ तत्व हैं जिनके बारे में मुझे जानकारी नहीं है - मैं जेएस जानता हूं लेकिन वास्तव में एचटीएमएल से परिचित नहीं हूं। मैंने ऑनक्लिक "myFunction" के विभिन्न क्रमपरिवर्तनों का एक समूह आज़माया है और मान अभी पारित नहीं हो रहे हैं।

var seconds = document.getElementById("se").value;
var Minutes = document.getElementById("mi").value;
var Hours = document.getElementById("ho").value;
var Weeks = document.getElementById("we").value;
var Days = document.getElementById("da").value;
var Months = document.getElementById("mo").value;

var newActivity = document.getElementById("activity").value;
var idArray = [seconds, Minutes, Hours, Weeks, Days, Months];

function bezosEarnings(s = 0, m = 0, h = 0, d = 0, w = 0, mo = 0) {
  var a = 1 * s;
  var b = 60 * m;
  var c = 3600 * h;
  var d = 86400 * d;
  var e = 604800 * w;
  var f = 2419300 * mo;
  var total = (a + b + c + d + e + f) * 2489;
  return total.toLocaleString();
}
var bezosResult = bezosEarnings(...idArray);
var returnSentence = `While you were ${newActivity}, Jeff Bezos made $ ${bezosResult}`;

function calcuLatte() {
  console.log(returnSentence);
}
What did you do today?
<input type="string" id="activity" placeholder="Phrased as a gerund!`" /> Seconds:
<input type="number" id="se" /> Minutes:
<input type="number" id="mi" /> Hours:
<input type="number" id="ho" /> Days:
<input type="number" id="da" /> Weeks:
<input type="number" id="we" /> Months:
<input type="number" id="mo" />
<button onclick="calcuLatte()">Calculate</button>

मैं उम्मीद कर रहा हूं // "जब आप जम्हाई ले रहे थे, जेफ बेजोस ने $ 7486 कमाए।" क्या रिटर्न है // "जब आप थे, जेफ बेजोस ने $ . बनाया

-1
Jensen Oness 16 अक्टूबर 2019, 09:48

2 जवाब

कुछ इस तरह की कोशिश करो। आपको वेरिएबल कारण को अपडेट करने की आवश्यकता है जब आपने वेरिएबल को बाहरी तरीके से घोषित किया है, तो उनके पास पहले जैसा ही मूल्य होगा।

function bezosEarnings(s = 0, m = 0, h = 0, d = 0, w = 0, mo = 0) {
  var a = 1 * s;
  var b = 60 * m;
  var c = 3600 * h;
  var d = 86400 * d;
  var e = 604800 * w;
  var f = 2419300 * mo;
  var total = (a + b + c + d + e + f) * 2489;
  return total.toLocaleString();
}

function calcuLatte() {

var seconds = document.getElementById("se").value;
var Minutes = document.getElementById("mi").value;
var Hours = document.getElementById("ho").value;
var Weeks = document.getElementById("we").value;
var Days = document.getElementById("da").value;
var Months = document.getElementById("mo").value;

var newActivity = document.getElementById("activity").value;
var idArray = [seconds, Minutes, Hours, Weeks, Days, Months];

var bezosResult = bezosEarnings(...idArray);
var returnSentence = `While you were ${newActivity}, Jeff Bezos made $ ${bezosResult}`;

  console.log(returnSentence);
}
1
Giorgi 16 अक्टूबर 2019, 07:00

आपका document.getElementById("yourId").value आपको एक string लौटाएगा। आपको इसे number में बदलना होगा। प्रयत्न

parseInt(document.getElementById("yourId").value)
0
Tera Mind 16 अक्टूबर 2019, 06:52