मैं एक दूसरे के साथ दो अलग-अलग चर की तुलना करने की कोशिश कर रहा हूं और यदि वे मेल खाते हैं तो कुछ कोड निष्पादित करते हैं। चर हैं: उपयोगकर्ता इनपुट और कमांडऑन

सबसे पहले, myTest() को कॉल करने के लिए एक बटन दबाया जाता है।

function myTest() {
   userInput = document.getElementById("runBox").value;
   testInput();
}

फ़ंक्शन मेरे पृष्ठ पर एक इनपुट बॉक्स से टेक्स्ट एकत्र करता है और इसे उपयोगकर्ता इनपुट नामक एक चर में संग्रहीत करता है। यह तब मेरा अगला कार्य कहता है ...

function testInput() {
  if (userInput = commandOne) {
     document.getElementById("demo").innerHTML += "<br>executed!";
  }else {
     alert("this is an alert message");
  }
}

यह भाग यह जांचने के लिए डिज़ाइन किया गया है कि उपयोगकर्ता इनपुट कमांडऑन नामक चर से मेल खाता है या नहीं। (कमांडऑन का मान वर्तमान में "आईपी" पर सेट है)।

यदि यह मेल खाता है, तो यह "डेमो" आईडी वाले अनुच्छेद में टेक्स्ट (निष्पादित!) जोड़ देगा। यदि यह मेल नहीं खाता है, तो यह उपयोगकर्ता को अलर्ट बॉक्स में अलर्ट करेगा।

मेरी समस्या यह है कि चर तुलना नहीं कर रहे हैं। कोई फर्क नहीं पड़ता कि उपयोगकर्ता उपयोगकर्ता में क्या डालता है पाठ (निष्पादित!) हमेशा मेरे पैराग्राफ में आउटपुट होता है। ऐसा प्रतीत होता है कि ब्राउज़र को लगता है कि वे मेल खा रहे हैं जबकि वे नहीं हैं।

0
user8871181 27 मार्च 2018, 06:59

3 जवाब

सबसे बढ़िया उत्तर

आपने गलत ऑपरेटर का इस्तेमाल किया था। आपको एकल = चिह्न के बजाय == चिह्न का उपयोग करना चाहिए।

function testInput() {
  if (userInput == commandOne) {
     document.getElementById("demo").innerHTML += "<br />executed!";
  } else {
     alert("This is an alert message");
  }
}

एक एकल = चिह्न (=) का अर्थ है कि चिह्न के बाईं ओर के मान को वही मान प्राप्त होता है जो चिह्न के दाईं ओर होता है।

दोहरा = चिह्न (==) का अर्थ है कि चिह्न के दोनों ओर दो मान बराबर हैं।

ट्रिपल = साइन (===) का मतलब है कि दोनों मान बराबर और एक ही प्रकार के हैं।

अधिक जानकारी के लिए यहां क्लिक करें

0
1 जून 2018, 13:10

जैसा कि बताया गया है - आपके पास गलत ऑपरेटर है - हालांकि मैं सिर्फ तर्क के लिए एक विकल्प दिखाना चाहता था: - टर्नरी ऑपरेटर - इसे पढ़ने के लिए बहुत अच्छा और क्लीनर बनाता है और अगर/अन्य मार्कअप को कम करता है।

संयोग से - प्रदान किए गए कोड को देखते हुए - आपको तेह दूसरे फ़ंक्शन को कॉल करने की भी आवश्यकता नहीं है - पूरी चीज एक फ़ंक्शन में की जा सकती है। साथ ही - यदि अलर्ट पूरी तरह से "अन्य" परिणाम प्रदर्शित करने के लिए है - तो आपको कंसोल.लॉग() के उपयोग की जांच करनी चाहिए - डिबगिंग के लिए यह बेहतर है।

टर्नरी ऑपरेटर को समझाने के लिए - मिलने वाली शर्त पहले लिखी जाती है (ध्यान दें कि इससे पहले कोई "अगर" नहीं है। इसके बाद - "?" का उपयोग करें यदि एचटीई तुलना सत्य है और एक ":" का उपयोग करें। यदि परिणाम गलत है तो चरित्र।

ध्यान दें कि मैं हमेशा तीन पंक्तियों पर टर्नरी ऑपरेटरों को लिखता हूं जैसा कि मैंने यहां किया है - मुझे इसे पढ़ना आसान लगता है - यह सब एक पंक्ति पर लिखा जा सकता है - व्यक्तिगत वरीयता।

और आखिरी बात - नहीं ";" Statemtn के "सत्य" भाग के अंत में - यह सब एक अभिव्यक्ति है जिसे मैंने तीन पंक्तियों में लिखा है।

function testInput() {
  userInput == commandOne
    ? document.getElementById("demo").innerHTML += "<br>executed!"
    : alert("this is an alert message");
}
0
gavgrif 27 मार्च 2018, 04:09

यदि आप कथन में अपने ऑपरेटर से चूक गए हैं।

if (userInput == commandOne)

== मूल्य की तुलना करता है

if (userInput === commandOne)

=== मानों और डेटा प्रकारों की तुलना करता है।

2
Tony Stark 27 मार्च 2018, 04:01