2011-08-26 9 views
12

मैं एक रूप है कि मैं अपने सीएमएस में उपयोग कि मैं कुंजी दबाने पर प्रपत्र को बचाने के लिए अतिरिक्त खुला जोड़ने के लिए करना चाहते हैं: "Ctrl + S"Ctrl + एस फार्म और सभी आदानों प्रस्तुत करने के लिए

इस के लिए काम करता प्रस्तुत बटन से अलग सभी आदानों नहीं भेजा जा रहा है, सरल उदाहरण में दिखाया है कि मैं क्या मतलब है:

<?php 
if(isset($_POST['save'])){ 
    die('save= ' . $_POST['save']); 
} 
?> 
<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8" /> 

    <title></title> 

    <style type="text/css"> 
     html { height: 100%; } 
     body { 
      color: #262626; 
      background: #f4f4f4; 
      font: normal 12px/18px Verdana, sans-serif; 
      height: 100%; 
     } 
     #container { 
      width: 760px; 
      margin: 0 auto; 
      padding: 10px 60px; 
      border: solid 1px #cbcbcb; 
      background: #fafafa; 
      -moz-box-shadow: 0px 0px 10px #cbcbcb; 
      -webkit-box-shadow: 0px 0px 10px #cbcbcb; 

      min-height: 100%; 
      height: auto !important; 
      height: 100%; 
     } 

    </style> 

    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script type="text/javascript"> 
    (function($){ 
     $(document).ready(function(){ 

      // Save Form 
      $(window).keypress(function(event) { 
       if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true; 
       $("#container form").submit(); 
       event.preventDefault(); 
       return false; 
      }); 

     }); 
    })(jQuery); 
    </script> 
</head> 

<body> 
    <div id="container"> 

     <form action="" method="post"> 
      <label for="">Name</label> 
      <input type="text=" name="name" value="" /> 

      <input name="save" type="submit" value="Save" /> 
      <input name="create" type="submit" value="Create" /> 

     </form> 

    </div> 
</body> 
</html> 
+0

सीएमएस में यह काम करने के लिए इसका उपयोग करता है अगर यह "सेव", "बनाएं", "डिलीट करें" इत्यादि है तो हाँ सबमिट बटन जमा करने की आवश्यकता है। –

+0

मैंने सबमिट बटन सबमिट करने का प्रयास किया लेकिन यह काम नहीं किया –

+0

@ श्री डिस्पॉइंटमेंट: सबमिट बटन का मूल्य केवल अनुरोध में शामिल किया गया है यदि यह सबमिट बटन पर क्लिक किया गया था। – Matt

उत्तर

8

submit बटन का मान केवल अनुरोध में शामिल है यदि यह submit बटन पर क्लिक किया गया था।

क्योंकि आप सीधे फॉर्म जमा कर रहे हैं (जेएस का उपयोग करके), आप सबमिट बटन पर क्लिक नहीं कर रहे हैं, इसलिए कोई भी सबमिट नहीं किया गया है।

फॉर्म पर .submit() पर कॉल करने के बजाय, सबमिट बटन पर .click() पर कॉल करने का प्रयास करें।

$(window).keypress(function(event) { 
    if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true; 
    $("#container form input[name=save]").click(); 
    event.preventDefault(); 
    return false; 
}); 
+0

मैंने कोशिश की लेकिन सबमिट के साथ क्लिक नहीं किया। धन्यवाद –

2

प्रयास करें:

if($("#container form :submit:first").length) 
{ 
    $("#container form :submit:first").click(); 
} 
else 
{ 
    $("#container form").submit(); 
} 

यह पहली बार प्रस्तुत-बटन पर क्लिक ट्रिगर किया जाएगा (यदि उपलब्ध हो)

1

इस फॉर्म में कोई एक्शन वैल्यू सेट नहीं है, और एक से अधिक सबमिट इनपुट हैं।

कई पराक्रम तोड़ .submit() प्रस्तुत लेकिन मैं ऐसा नहीं सोचता - मुझे लगता है कि एक कार्रवाई नहीं होने प्रपत्र भेजने के लिए करने के लिए कारण है कि यह कुछ नहीं कर प्रतीत होता है।

संपादित करें/सुधार:

मैं इस सवाल का जवाब (धन्यवाद @JohnMagnolia) पोस्टिंग के बाद से कुछ चीजें का पता चला, तो मुझे अपने आप को दूर करने के लिए अनुमति देने के है:

असल में खाली कार्रवाई गुण एचटीएमएल 4 में अनुमति दी जाती है , लेकिन एचटीएमएल 5 में अस्वीकृत। ज्यादातर मामलों में एक खाली क्रिया विशेषता वर्तमान यूआरएल, में सहित पैरामीटर सबमिट करने का कारण बनती है। एकाधिक सबमिट बटन कोई समस्या नहीं हैं और क्यों नहीं कोड कोड नहीं किया गया, सही जवाब के लिए @ मैट का जवाब देखें।

+0

मैट का उत्तर वास्तव में बेहतर दिखता है – jammypeach

+1

क्षमा करें, लेकिन गलत है, अगर किसी फॉर्म में खाली कार्य है तो यह स्वचालित रूप से स्वयं को वापस पोस्ट कर देगा। –

+0

@ जॉन मॉग्नोलिया यही है कि स्पेक कहता है हालांकि यह ब्राउज़र निर्भर है (http://stackoverflow.com/a/1132015/846480 देखें)। एनबी, इस प्रश्न का सही उत्तर ^^ – jammypeach

संबंधित मुद्दे