2013-02-07 18 views
5

का उपयोग कर अगली स्क्रीन पर जाएं I jquery FormWizard का उपयोग कर रहा हूं और फॉर्म सबमिट करने और अगली स्क्रीन पर जाने के तरीके के रूप में अंतिम स्क्रीन पर सबमिट बटन का उपयोग करना चाहता हूं।फॉर्म सबमिट करने के लिए बटन सबमिट करें और jquery form-wizard

समस्या है कि मैं अपने जावा कोड में इस jquery स्क्रिप्ट को एम्बेड कर रहा हूं। अभी मेरे पास jquery फॉर्म विज़ार्ड से "सबमिट" बटन है और मेरे जावा कोड से "जारी" बटन है। तो उपयोगकर्ता "सबमिट" दबाकर फॉर्म सबमिट करता है और फिर अगली स्क्रीन पर जाने के लिए "जारी रखें" दबाएं। उपयोगकर्ता के लिए आदर्श स्थिति नहीं है।

अगर मैं "जारी रखें" सबमिट किए बिना "जारी रखें", तो यह फ़ॉर्म की किसी भी जानकारी को संग्रहीत नहीं करता है। एक बार जब मैं "सबमिट" दबाता हूं और फिर "जारी रखें", फ़ॉर्म पर सभी जानकारी डेटाबेस में सहेजी जाएगी। मैं का उपयोग कैसे कर सकता हूं बटन सबमिट के रूप में जारी रखें और अगली स्क्रीन पर आगे बढ़ने के लिए भी ताकि मुझे अंतिम स्क्रीन पर सबमिट बटन की आवश्यकता न हो।

Script sc = new Script(); 
sc.add("$(function(){$('#formScreenQuestions').formwizard({formPluginEnabled: true,validationEnabled: true,focusFirstInput : true,disableUIStyles : true});});"); 
HEADER.add(sc); 

Form form = new Form("criteria"); 
form.set(ID, "formScreenQuestions"); 
Div dh = new Div(); 
dh.set(ID, "lastStep"); 
dh.set(CLASS,"step"); 
Table vt = new Table(); 
vt.row(); 
vt.cell(text("Please press SUBMIT before pressing CONTINUE")); 
==== showing some questions with checkboxes to select ===== 
dh.add(vt); 
Div db = new Div(); 
db.set(ID,"navigation"); 
Table bt = new Table(); 
bt.row(); 
bt.cell("<input type='reset',id='back',value='Back' />"); 
bt.cell("<input type='submit',id='next',value='Next' />");  
db.add(bt); 

form.add(dv); 
form.add(db); 
+0

क्या किसी को पता है कि "सबमिट" कोडमिन फॉर्मवार्ड में क्या कर रहा है? – yogsma

उत्तर

3

अगले पृष्ठ पर प्रस्तुत करता है, तो ठीक है एक सर्वर साइड पुनर्निर्देशन बनाओ,। ।

या

प्रस्तुत कॉलबैक एक $ ("# continueButton") बनाने पर क्लिक करें();

1

Propably सबसे अच्छा तरीका है jQuery के प्रस्तुत घटना उपयोग करने के लिए है और AJAX सर्वर में जमा करें उपयोग:

$("#form-name").submit(function(){ 
    $.post("submit-path", function(result){ 
    // do something with result 
    }); 
    return false; 
}); 
0

आप JQuery उपयोग कर रहे हैं - क्यों AJAX की शक्ति का इस्तेमाल किया और इसे और अधिक बेहतर प्रयोक्ता अनुभव नहीं -

जारी रखें बटन पर एक jQuery घटना को परिभाषित करें:

$("#continue-button").click(function(){ 
      windows.location.href="URL to be forwared to"; 
    }): 

बटन सबमिट करें के क्लिक पर एक AJAX अनुरोध भेजें (jQuery के AJAX विधि के प्रलेखन को देखो

$.ajax({ 
    url : actionURL, 
    dataType : <your dataType>, 
    contentType : <your Content Type>, 
    type : 'post', 
    data : <bla bla>, 
    success : function(data) { 
     //Show Continue button    
    } 
    }); 
}; 
+1

सबमिट बटन को फॉर्म विज़ार्ड द्वारा गतिशील रूप से संशोधित किया गया है, इस प्रकार वह बटन को बाध्य नहीं कर सकता है। – Gepsens

1

अगर मैं सही ढंग से समझ, formWizard केवल आपके एक जादूगर का उपयोग कर कई चरणों में अपने फार्म को विभाजित में मदद करता है: प्रसंस्करण आइकन दिखाने के लिए कैसे "

AJAX अनुरोध किया है।
आप बस बटन पर क्लिक नहीं कर सकते हैं क्योंकि यह कभी भी एक क्लिक के बाद ट्रिगर होगा।

आपको क्या करना चाहिए क्या formWizard से इस घटना का उपयोग है, तो आप को जोड़ने नहीं किया जाएगा जटिलता आप प्लगइन का कोई भी कार्यक्षमता अधिभावी नहीं किया जाएगा के बाद से उपयोग कर रहे हैं:

 
$("#demoForm").bind("after_remote_ajax", function(event, data){ 
    if(event.success && event.currentStep === finalStep) { 
     windows.location.href="URL to be forwared to"; 
    } 
}); 
+0

मैं यह कोशिश कर रहा हूं, लेकिन वास्तव में बहुत मदद नहीं की। – yogsma

0

wouldnt यदि आप jquery फॉर्म में जारी रखें बटन का उपयोग करते हैं, और जावा से सबमिट बटन को हटाते हैं तो यह बेहतर होगा?

$(function(){ 
    // bind a callback to the before_step_shown event 
    $("#demoForm").bind("before_step_shown", function(event, data){ 
      if(!data.isBackNavigation){ 
      doSubmit(); 
      } 

    }); 
}); 
0

मुझे लगता है कि यह एक डिजाइन मुद्दा है।यदि आप एक मल्टीस्टेप फॉर्म बनाने की कोशिश कर रहे हैं जहां प्रत्येक चरण के बीच डेटा सहेजा जाता है, तो आपके पास फॉर्म के प्रत्येक चरण पर एक सबमिट बटन होना चाहिए, सर्वर को डेटा जमा करना चाहिए, इनपुट छिपे हुए मान का उपयोग करके चरण का ट्रैक रखें, फिर भेजें ग्राहक के रूप में फॉर्म का अगला हिस्सा। यह सुरक्षित है क्योंकि आपका फॉर्म काम करेगा भले ही जावास्क्रिप्ट क्लाइंट साइड सक्षम नहीं है। इस तरह के डिज़ाइन में, एजेक्स कार्यक्षमता जोड़ने के लिए प्रक्रिया को बाद में सुधार किया जा सकता है।

यदि आपको प्रत्येक चरण के बीच भेजने के लिए डेटा की आवश्यकता नहीं है, तो आप प्रत्येक सबफॉर्म के लिए किसी प्रकार के पैनल के साथ एक ही फॉर्म कर सकते हैं जो क्लाइंट कहां दिखाया जा सकता है या छुपाया जाएगा।

+0

कृपया अपनी पोस्ट पर हस्ताक्षर नहीं करें। –

+0

ध्यान दिया, धन्यवाद। – Bertrand

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