मैं इस तरह कई रूपों का प्रतिपादन कर रहा हूँ:
trait = (name, dice, mod) => {
return `
<tr><form action="#" onsubmit="renderRoll()">
<td><label>${name}</label></td>
<td><input type="text" name="dice" value="${dice}"></td>
<td><input type="text" name="mod" value="${mod}"></td>
<td><input type="submit" value="Slå" name="roll" ></td>
</form></tr>`;
};
document.getElementById('content').innerHTML += trait;
प्रपत्रों में विशिष्ट id:s नहीं होते हैं और DOM में हमेशा एक से अधिक होते हैं। मैं renderRoll()
कैसे चला सकता हूं और ट्रिगर किए गए फॉर्म के मूल्यों तक कैसे पहुंच सकता हूं?
0
Himmators
26 फरवरी 2019, 19:15
2 जवाब
सबसे बढ़िया उत्तर
आपको कार्य करने के लिए "renderRoll ()" फ़ंक्शन के अंदर एक तर्क पारित करना होगा।
<form action="#" onsubmit="renderRoll(event)">
function renderRoll(event) {
//here is your target...
var target = event.target;
alert(target.innerHTML);
}
1
danielarend
26 फरवरी 2019, 19:20
मेरा सुझाव है कि आप फॉर्म तत्व के नाम के रूप में एक अद्वितीय आईडी का उपयोग करें जैसा कि नीचे दिया गया है:
const trait = (id, name, dice, mod) => {
return `
<tr><form name="${id}" action="#" onsubmit="renderRoll">
<td><label>${name}</label></td>
<td><input type="text" name="dice" value="${dice}"></td>
<td><input type="text" name="mod" value="${mod}"></td>
<td><input type="submit" value="Slå" name="roll" ></td>
</form></tr>`;
};
document.getElementById('content').innerHTML += trait("form", "test", "test", "test");
और जब भी फॉर्म ट्रिगर होता है तो फॉर्म डेटा का उपयोग करें:
function renderRoll() {
let data = document.forms.namedItem("form").elements;
data = [...data].map(({name, value}) => ({name, value}));
console.log(data)
}
मुझे आशा है कि यह उपयोगी होगा।
0
Ali Torki
26 फरवरी 2019, 19:39
संबंधित सवाल
नए सवाल
ecmascript-6
ECMAScript विनिर्देश के 2015 संस्करण, अब एक मानक (ECMAScript 2015) है। केवल इस टैग का उपयोग करें जहां प्रश्न विशेष रूप से ECMAScript 2015 में प्रदान की गई नई सुविधाओं या तकनीकी परिवर्तनों से संबंधित है।