जावास्क्रिप्ट डोम समस्या


मैं जावास्क्रिप्ट DOM का आदी होने का प्रयास कर रहा हूं।
लेकिन मैं इस मुद्दे को समझ नहीं पा रहा हूं।

फ़ंक्शन को वह नाम दिखाना चाहिए जिसे मैं हैलो के साथ दर्ज करता हूं, लेकिन इससे कोई फर्क नहीं पड़ता कि मैंने क्या किया, यह केवल हैलो, कौन दिखाता है।

HTML कोड:

<pre>
<form>
    <input type="text" placeholder="name" autocomplete="off" onkeyup="full()" id="fname">
</form>
 <p id="p"></p>

यहाँ मेरा जेएस कोड है.

जावास्क्रिप्ट
var name = document.getElementById("fname");
var p = document.getElementById("p");
              function full(){
                if (name.value) {
                    p.innerHTML = "hello, ${name.value}";
                    console.log(1);
                }
                else {
                    p.innerHTML = "hello, who";
                    console.log(2);
                }
              }

मैंने क्या प्रयास किया है:

मैंने इवेंट को ऑनइनपुट से ऑनकीअप में बदल दिया, लेकिन परिणाम वही मिला।

समाधान 1

पहली समस्या यह है कि आप a के बजाय नियमित स्ट्रिंग का उपयोग कर रहे हैं टेम्पलेट शाब्दिक[^].

दूसरी समस्या यह है name पर एक संपत्ति है window वस्तु। जब इवेंट हैंडलर फ़ंक्शन को कॉल किया जाता है, तो वह प्रॉपर्टी छिप जाती है name चर। अपने वेरिएबल को कुछ इस तरह बदलें fname बजाय।

जावास्क्रिप्ट
const fname = document.getElementById("fname");
const p = document.getElementById("p");

function full() {
    if (fname.value) {
        p.innerHTML = `hello, ${fname.value}`;
    } else {
        p.innerHTML = "hello, who";
    }
}

डेमो[^]

コメント

タイトルとURLをコピーしました