• मेरे पास दो की-अप इवेंट हैं, जो दो अलग-अलग input तत्वों के मान लॉग करते हैं।
  • मैं दोनों घटनाओं से दोनों मानों को एक चर में जोड़ना चाहता हूं।
  • मेरे पास निम्नलिखित स्निपेट है।
var textInputSVK = document.getElementById("top__itextsvk");
var textInputKg = document.getElementById("top__itextkg");

function delay(e, delay) {
  let timer = 0;
  return function(...args) {
    clearTimeout(timer);
    timer = setTimeout(e.bind(this, ...args), delay || 0);
  };
}

textInputKg.addEventListener(
  "keyup",
  delay(e => {
	var t = textInputKg.value;
    console.log(t);
  }, 500)
);

textInputSVK.addEventListener(
  "keyup",
  delay(e => {
	var t = textInputSVK.value;
    console.log(t);
  }, 500)
);
<input id="top__itextkg" type="text" value="10" autocomplete="off" />
<input id="top__itextsvk" value="10" autocomplete="off" type="text" />
0
mckvak 12 सितंबर 2019, 21:52

2 जवाब

हम इसे Event Bubbling का उपयोग करके कर सकते हैं जिसमें हम दो इनपुट तत्वों को एक div में संलग्न करेंगे और फिर उस चाइल्ड एलिमेंट की पहचान करेंगे जिसमें Key Up ईवेंट दबाया गया है।

var parent = document.getElementById("parent");

function delay(e, delay) {
  let timer = 0;
  return function(...args) {
    clearTimeout(timer);
    timer = setTimeout(e.bind(this, ...args), delay || 0);
  };
}

parent.addEventListener(
  "keyup",
  delay(e => {
	  var t = e.target.value;
    console.log(`this event is from ${e.target.id}`,t);
  }, 500)
);
<div id="parent">
  <input id="top__itextkg" type="text" value="10" autocomplete="off" />
  <input id="top__itextsvk" value="10" autocomplete="off" type="text" />
</div>
0
Abhisar Tripathi 12 सितंबर 2019, 22:43

धाराओं का उपयोग करने के लिए यह एक क्लासिक मामला है। हम इस तरह की समस्याओं को बहुत आसानी से हल करने के लिए RxJS का उपयोग कर सकते हैं। काम कर रहा डेमो

0
Siddharth Pal 12 सितंबर 2019, 22:22