2012-04-30 17 views
7

हाय मेरे पास यह फ़ॉर्म है कि सबमिट बटन क्लिक होने पर मैं कोई कार्रवाई नहीं करना चाहता हूं। मैं बस इतना करना चाहता हूं कि एक ऐसा फ़ंक्शन निष्पादित करता है जो डेटा को div में लोड करता है। कोई विचार??सबमिट कार्रवाई को अक्षम कैसे करें

<form method="POST" action="" id="search-form"> 
      <input type="text" name="keywords" /> 
      <input type="submit" value="Search" id="sButton" onclick="loadXMLDoc('file.xml')" /> 
</form> 
+1

क्या आपने jquery का उपयोग करके AJAX कोशिश की है? –

उत्तर

8
onclick="loadXMLDoc('file.xml'); return false;" 

या और भी बेहतर:

<script> 
    window.onload = function() { 
     document.getElementById("search-form").onsubmit = function() { 
      loadXMLDoc('file.xml'); 
      return false; 
     }; 
    }; 
</script> 

loadXMLDoc को लागू करने के लिए, आप jQuery में ajax मॉड्यूल का उपयोग कर सकते हैं। उदाहरण के लिए: jQuery का उपयोग कर

function loadXMLDoc() { 
    $("div").load("file.xml"); 
} 

अंतिम कोड:

<script> 
    $(function() { 
     $("#search-form").submit(function() { 
      $("div").load("file.xml"); 
      return false; 
     }); 
    }); 
</script> 
+0

इस मामले में 'e.preventDefault()' बेहतर या 'वापसी झूठी' बेहतर है? –

+0

'वापसी झूठी' बेहतर है क्योंकि यह ईवेंट के डिफ़ॉल्ट व्यवहार को रोकता है ** और ** पृष्ठ को बुलबुले से रोकता है। ध्यान दें कि यह jQuery ईवेंट हैंडलर में केवल सही है। –

+0

मैं देखता हूं ... –

2

मैं तुम्हें ajax समारोह की जरूरत है डेटा

इनपुट बदलें प्रकार submitbutton

लिए पृष्ठ पुनः लोड बिना div में साथ लोड करने के लिए लगता है
<input type="button" value="Search" id="sButton" onclick="AjaxSend()" /> 

अजाक्स कैल:

<script type="text/javascript"> 
    function AjaxSend(){ 
     $.get('file.xml', function(data) { 
       $('div').html(data); 
      }); 
    } 
</script> 
+0

आपका मतलब है क्लिक करें = "जावास्क्रिप्ट: अजाक्ससेन्ड()" ... मुझे आश्चर्य है कि यह अब हर जगह काम करता है। यह चाहिए, बीटीडब्ल्यू। – dkellner

+0

हाँ यह काम करेगा ... – Dhamu

+0

यह क्रोम में मेरे लिए भी काम करता है, वैसे भी। – dkellner

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