मैं कोडिंग विभाग में बहुत हरा हूं और कक्षा में थोड़ा सा जावास्क्रिप्ट सीखना शुरू कर रहा हूं। हमें यह काम सौंपा गया है कि एक बहुत ही सरल असाइनमेंट क्या होना चाहिए, लेकिन हमारे शिक्षक की शिक्षण शैली थोड़ी अस्पष्ट है और मुझे अपने वर्तमान असाइनमेंट में कठिनाई हो रही है। एक टेक्स्ट फ़ील्ड में हमें कुछ शर्तों के पूरा होने पर त्रुटि संदेशों को रिले करना होता है, जैसे "नाम दर्ज करें" संदेश जब कोई वर्ण न हो, "पर्याप्त नहीं" जब एक निश्चित राशि से कम हो, " बहुत अधिक" अन्य राशि पर, आदि।

मुझे अपने कथन को सही ढंग से काम करने के लिए कठिन समय हो रहा है और मुझे यकीन नहीं है कि मैं इसमें गलत कहां जा रहा हूं। मैं काम करने के लिए अलग-अलग टुकड़ों को प्राप्त करने में सक्षम हूं, लेकिन अगर/अन्य के साथ इसे एक साथ रखते हुए, ऐसा लगता है कि या तो चरणों को छोड़ दें और/या मिश्रण करें या पूरी तरह से काम करना बंद कर दें। यहां किसी भी मार्गदर्शन की बहुत सराहना की जाएगी!

(वर्तमान में मेरे पास नीचे क्या है, यह अगर (या 5 से कम) से संदेश प्रदर्शित करता है, जब कोई वर्ण नहीं होता है, लेकिन कुछ और नहीं करता है)

function whichKey(event) {

  var name = document.getElementById("nameInput").value;
  var errorList = document.getElementById("errorOutput");
  var errorOne = document.createElement("a");

  while (name == 0) {
    errorOne.innerText = "You must enter a name";

    if (name < 5) {
      errorOne.innerText = "You must enter at least 5 characters";
    } else if (name >= 25) {
      errorOne.innerText = "You can not enter a name with more than 25 characters";
    } else {
      document.getElementById("errorOutput").value = "";
    }
    errorList.appendChild(errorOne);
    name++;
  }
}
1
JAY-ARE-GEE 24 फरवरी 2020, 05:30

5 जवाब

  1. आपको var name को बदलना होगा

var name_length = document.getElementById("nameInput").value.length;

  1. आपको थोड़ी देर के लूप को हटाना होगा और इसे if स्टेटमेंट में बदलना होगा

आप इस तरह कोशिश कर सकते हैं:

function whichKey(event) {

  var name_length = document.getElementById("nameInput").value.length;
  var errorList = document.getElementById("errorOutput");
  var errorOne = document.createElement("a");

  if (name_length === 0) {
      errorOne.innerText = "You must enter a name";
  } else if (name_length < 5) {
      errorOne.innerText = "You must enter at least 5 characters";
  } else if (name_length >= 25) {
     errorOne.innerText = "You can not enter a name with more than 25 characters";
  } else {
     document.getElementById("errorOutput").value = "";
  }

    errorList.appendChild(errorOne);

}
1
Community 20 जून 2020, 12:12

आपने सभी तर्क while (name===0) के अंदर डाल दिए हैं, इसलिए किसी भी अन्य मामले में यह केवल if else कथन दर्ज नहीं करेगा...

मुझे यहां while का उपयोग करने का कोई कारण नहीं दिख रहा है। बस इससे छुटकारा।

साथ ही, आपको स्ट्रिंग की लंबाई प्राप्त करने के लिए name.length की जांच करनी चाहिए।

0
Yosef Tukachinsky 24 फरवरी 2020, 05:37

ऐसा इसलिए है क्योंकि आपने दस्तावेज़ पर नाम का मान लोड किया है और आप पहले सेट करते हैं यदि कथन नाम <5 जिसमें 0 शामिल है, तो आपको दो काम करने होंगे 1. टेक्स्ट परिवर्तन के साथ इलाज के लिए ईवेंटलिस्टर जोड़ें। 2. पहले यदि कथन <5 और>1 बनाएं।

0
Osama 24 फरवरी 2020, 05:40
function whichKey(event) {
  const nameLength = document.getElementById("nameInput").value.length;
  const errorList = document.getElementById("errorOutput");
  const errorOne = document.createElement("a");

  if (nameLength === 0) {
    errorOne.innerText = "You must enter a name";
  } else if (nameLength < 5) {
    errorOne.innerText = "You must enter at least 5 characters";
  } else if (nameLength >= 25) {
    errorOne.innerText = "You can not enter a name with more than 25 characters";
  } else {
    document.getElementById("errorOutput").value = "";
  }
  errorList.appendChild(errorOne);
}

कुछ नोट्स:

  • आपको अपनी जांच करने के लिए नाम की लंबाई चाहिए, नाम की नहीं
  • आपको while(name === 0) की आवश्यकता नहीं है। यह सिर्फ एक और "अगर" होना चाहिए
  • आपको वास्तव में >= 25 की आवश्यकता नहीं है। आप केवल इनपुट तत्व की अधिकतम लंबाई निर्धारित कर सकते हैं <input type="text" maxlength="25">
  • हो सकता है कि आप nameLength = ...value.trim().length नाम ट्रिम करना चाहें ताकि यदि उपयोगकर्ता कुछ रिक्त स्थान टाइप करता है तो यह आपके चेक को संतुष्ट करने के रूप में नहीं गिना जाएगा।
0
gman 24 फरवरी 2020, 05:46

स्विच करें

       var name = document.getElementById("nameInput").value;

इसके साथ

       var name = document.getElementById("nameInput").value.length;

और while (name == 0) को if (name == 0) में बदलें

फिर आपके द्वारा अभी संपादित किए गए सभी कथनों को हटा दें ...



अंतिम कोड

 function whichKey(event) {

  var name_length = document.getElementById("nameInput").value.length;
  var errorList = document.getElementById("errorOutput");
  var errorOne = document.createElement("a");

 if (name_length === 0) {
    errorOne.innerText = "You must enter a name";

    else if (name < 5) {
      errorOne.innerText = "You must enter at least 5 characters";
    } else if (name >= 25) {
      errorOne.innerText = "You can not enter a name with more than 25 characters";
    } else {
      document.getElementById("errorOutput").value = "";
    }
    errorList.appendChild(errorOne);
  }
}`

उम्मीद है ये मदद करेगा!

0
24 फरवरी 2020, 05:47