यदि कोई फॉर्म सबमिट किया गया है लेकिन किसी विशिष्ट बटन के द्वारा नहीं, जैसे कि
- दबाने से Enter
HTMLFormElement.submit()
जेएस में उपयोग करना
एक ब्राउज़र को यह निर्धारित करने के लिए कैसे निर्धारित किया जाता है कि कौन से कई बटन दबाए गए हैं, यदि कोई है, तो दबाए गए के रूप में उपयोग करने के लिए?
यह दो स्तरों पर महत्वपूर्ण है:
onclick
सबमिट बटन से जुड़े ईवेंट हैंडलर को कॉल करना- डेटा वेब सर्वर को वापस भेज दिया
अब तक के मेरे प्रयोगों से पता चला है कि:
- दबाने पर Enter, फ़ायरफ़ॉक्स, ओपेरा और सफारी फॉर्म में पहले सबमिट बटन का उपयोग करें
- दबाने पर Enter, IE या तो पहले सबमिट बटन का उपयोग करता है या उन स्थितियों के आधार पर जो मुझे पता लगाने में सक्षम नहीं है
- ये सभी ब्राउज़र जेएस सबमिट के लिए बिल्कुल भी उपयोग नहीं करते हैं
मानक क्या कहता है?
यदि यह मदद करेगा, तो यहां मेरा परीक्षण कोड (PHP केवल मेरे परीक्षण की विधि के लिए प्रासंगिक है, मेरे प्रश्न के लिए नहीं)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<h1>Get</h1>
<dl>
<?php foreach ($_GET as $k => $v) echo "<dt>$k</dt><dd>$v</dd>"; ?>
</dl>
<h1>Post</h1>
<dl>
<?php foreach ($_POST as $k => $v) echo "<dt>$k</dt><dd>$v</dd>"; ?>
</dl>
<form name="theForm" method="<?php echo isset($_GET['method']) ? $_GET['method'] : 'get'; ?>" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<input type="text" name="method" />
<input type="submit" name="action" value="Button 1" onclick="alert('Button 1'); return true" />
<input type="text" name="stuff" />
<input type="submit" name="action" value="Button 2" onclick="alert('Button 2'); return true" />
<input type="button" value="submit" onclick="document.theForm.submit();" />
</form>
</body></html>