2012-06-08 28 views
5

मैं अपने पृष्ठ ajax पोस्ट के बाद ताज़ा के साथ एक समस्या है नहीं रोका जा सकता है, मैं 6 अलग-अलग रूपों की तरह की कोशिश की है और एक बिंदु पर मैं उचित परिणाम हो रही थी लेकिन ताज़ा से पेज नहीं रोक पाया और इस साइट पर शुद्ध खोज और आसपास के बाद अब यह से कोई भी काम कर रहा है और यह अभी भी ताज़ा है ...ajax पद लेकिन ताज़ा

वर्तमान कोड है:

$('#submit_btn').click(function() { 
/*event.preventDefault();*/ 
var curPassword = $("input#curPassword").val(); 
var newPassword = $("input#newPassword").val(); 
var new2Password = $("input#new2Password").val(); 
/*var params = 'curPassword='+ curPassword + '&newPassword=' + newPassword + '&new2Password=' + new2Password; */ 
var params = { 
    curPassword: curPassword, 
    newPassword: newPassword, 
    new2Password:new2Password 
}; 
$.ajax({ 
     type: "POST", 
     url: "testAjax.php", 
     data: params, 
     success: function(msg){ 
      alert(msg); 
     } 
    }); 
    return false; 
}); 

रूप है:

<form method="post" action="" name="confirmChange" class="confirmChange"> 
<label for="curPassword">Current Password:</label> 
<input type="password" name="curPassword" id="curPassword" value="" /> 
<label for="newPassword">New Password:</label> 
<input type="password" name="newPassword" id="newPassword" value="" /> 
<label for="new2Password">Confirm New Password:</label> 
<input type="password" name="new2Password" id="new2Password" value="" /> 
<br /> 
<input type="button" name="confirmChange" class="confirmChange" id="submit_btn" value="Change" /> 

इस प्राप्त करने में किसी भी मदद की सराहना काम करने के लिए =/

अद्यतन: अन्य गैर सीधे से संबंधित कोड बाहर ले ली के रूप में यह थोड़े सवाल भरा हुआ। नवीनतम संशोधन को फिर से बदलने के लिए कोड भी अपडेट किया गया। मैंने AJAX url को एक साधारण टेक्स्ट Ajax.php में बदल दिया है, एक सरल गूंज हैलो दुनिया के साथ कुछ भी नहीं, जहां मुझे अभी भी कुछ भी नहीं मिल रहा है।

अद्यतन 2 की कोशिश की करने के लिए जावास्क्रिप्ट कोड को बदलने:

$('#submit_btn').click(function() { 
     alert('Button Clicked'); 
}); 

और मैं कुछ भी नहीं कर रहा हूं ... अगर ऐसा कैसे हो सकता है क्लिक समारोह में सभी काम नहीं कर रहा है नीचे दिए गए फॉर्म ?

+2

मुझे लगता है कि आप preventDefault गौर करने की आवश्यकता हो सकती()। मुझे यकीन नहीं है कि jQuery कैसे काम करता है, लेकिन मुझे लगता है कि आपको झूठी वापसी के बजाय इस फ़ंक्शन को कॉल करना होगा। –

+0

अपना बटन बंद करें :) /> कुछ प्रगति जोड़ सकता है – tomexsans

उत्तर

0

मुझे लगता है कि मैं इसे ठीक किया गया प्रयास करें:

$('#submit_btn').live('click', (function() { 

मैं कम से कम जब क्लिक करने एक प्रतिक्रिया हो रही शुरू कर दिया है, लेकिन मैं अद्यतन करने या से किसी भी गूंज के वापस आने नहीं कर रहा हूँ PHP फ़ाइल लेकिन उम्मीद है कि डीबग करना आसान होगा।:)

+0

यूप, अब पूरी तरह से काम कर रहा है! वास्तव में एक बड़ी चीज का श्रेय देना: http://stackoverflow.com/users/634752/sbeliv01 किसी अन्य पोस्ट से। मैं निजी संदेश भी नहीं भेज सकता क्योंकि मैं साइट पर नया हूं या इस साइट पर सिर्फ उन्हें नहीं है या मुझे उनका शुक्रिया अदा करना अच्छा लगेगा क्योंकि उन्होंने वास्तव में मेरी कई समस्याओं को अनजाने में हल किया है। :) मैंने हमेशा सोचा था कि इसका इस्तेमाल इस तरह किया गया था: $ ('# submit_btn')। Live()। क्लिक करें (function() {जो कभी काम नहीं करता ... और इस प्रश्न की तरह स्थितियों में छोड़ा गया। –

2

आप type = उपयोग करने के लिए की जरूरत नहीं है आपके इनपुट के लिए "सबमिट करें"। बस टाइप = "बटन" का उपयोग करें और बटन के क्लिक ईवेंट पर AJAX फ़ंक्शन को कॉल करें।

<input type="button" name="confirmChange" class="confirmChange" id="submit_btn" value="Change"> 

$('#submit_btn').click(function() { 
    (ajax code here) 
}); 

preventDefault() भी काम करेगा, लेकिन, मेरी राय में, क्यों प्राकृतिक रूप से उत्पन्न जब आप सिर्फ बटन पूरी तरह प्रस्तुत का उपयोग कर से बचने कर सकते से एक घटना को रोकने के?

अद्यतन: मुझे अभी एहसास हुआ कि सबमिट का उपयोग करने से उपयोगकर्ताओं को आपके कार्यों को ट्रिगर करने के लिए प्रवेश करने की अनुमति मिल जाएगी, इसलिए शायद इसमें कुछ योग्यता भी है। किसी भी मामले में, here's a similar question that contains elaborations into preventDefault()

अद्यतन 2: आपको AJAX फ़ंक्शन में अपने पैरामीटर को ठीक करने की आवश्यकता है। बजाय एक क्वेरी स्ट्रिंग बनाने की कोशिश की एक सरणी का उपयोग करें:

var params = { 
curPassword: curPassword, 
newPassword: newPassword, 
new2Password:new2Password 
}; 
+0

इनपुट के लिए धन्यवाद, मैंने मूल पोस्ट को अद्यतन कोड के साथ संपादित किया है, और यह ताज़ा नहीं है लेकिन ऐसा लगता है कि मुझे कोई बदलाव नहीं मिल रहा है डीबी, और न ही PHP पृष्ठ से कोई प्रतिक्रिया ... –

+0

उपरोक्त उत्तर में मेरा अद्यतन देखें। आपके पैरामीटर ठीक से पारित नहीं किए जा रहे हैं। – nageeb

+0

अभी भी कुछ भी नहीं =/ –

1

निम्नलिखित कोड ब्लॉक

 
$('form.confirmChange').submit(function(event) { 
     event.preventDefault(); 
     #Rest of your code goes in here 
}); 

preventDefault() के भीतर अपने AJAX कॉल समाहित पर आरंभ होने से एक घटना का डिफ़ॉल्ट कार्रवाई नहीं कर पाएगा।

0

का उपयोग करके इस

<script> 
function refreshpage(){ 
(ajax code here) 
    return false; 
} 
</script> 

<form onsubmit="return refreshpage();"> 
<input type = "submit" value="submit_btn"> 
</form> 
0

मुझे एक ही समस्या थी। बस आप की तरह, मैंने <form> टैग जोड़ी के अंदर अपना <input> टैग लपेट लिया था। भले ही <submit> नहीं था, मैंने पाया कि जब मैंने अजाक्स कॉल को ट्रिगर करने के लिए अपने बटन पर क्लिक किया था, तो यह पृष्ठ को रीफ्रेश कर रहा था - और वास्तव में पृष्ठ को फ़ॉर्म सबमिट कर रहा था।

मैंने <form> टैग को हटा दिया और यह व्यवहार बंद हो गया, लेकिन अजाक्स अभी भी अपेक्षित काम करता है। मुझे उम्मीद है कि यह किसी और की मदद कर रहा है जो इसका अनुभव कर रहा है।

0

केवल एक बार AJAX कॉल चलाने के लिए एक लूप का उपयोग करें।

var i; 
for(i=0;i<1;i++){ 
//ajax code here 
} 

तो, तो यह फिर से और फिर फोन नहीं होगा ..

+0

यदि आप ' var i; 'एक ही स्टैक में - इसे हर बार बुलाया जाएगा, क्योंकि प्रत्येक बार 'i' प्रारंभ नहीं किया जाएगा। –