2009-01-31 10 views
8

मैं अपाचे बीहेइव का उपयोग कर रहा हूं। एक ड्रॉपडाउन बॉक्स (< netui: चयन >) के साथ और एक सबमिट बटन (< netui: बटन >): मेरा JSP एक रूप (फार्म > < netui) शामिल हैं। जब सबमिट बटन दबाया जाता है, तो फॉर्म की डिफ़ॉल्ट क्रिया ("doAction1) सबमिट की जाएगी। मुझे ड्रॉपडाउन से कोई विकल्प चुना जाने पर एक अलग क्रिया (" doAction2 ") सबमिट करना है। (चित्र 1 देखें)चुनिंदा परिवर्तन घटनाओं के आधार पर विभिन्न फॉर्म क्रियाएं

मेरी पहली झुकाव JavaScript फ़ंक्शन है कि नए कार्य के नाम के लिए प्रपत्र के कार्रवाई विशेषता बदलता है और उसके बाद प्रपत्र सबमिट करना था (चित्र 2), लेकिन यह काम नहीं किया। मुझे पता चला है कि टैग तब्दील http://localhost:7001/app/doAction1.do की तरह एक पूर्ण URL को "doAction1"।

"doAction2" स्ट्रिंग है कि मैं जावास्क्रिप्ट submitForm के पास (फार्म, newAction) विधि एक उपयुक्त URL को "doAction2" परिवर्तित नहीं कर सकते (अच्छी तरह से यह हो सकता है, लेकिन केवल एक कट्टर तरीके से)। मैं नेटूई टैग की तलाश में गया जो एक सादे एक्शन नाम को यूआरएल में परिवर्तित कर सकता था, लेकिन मुझे कोई नहीं मिला।

तो, इसे पूरा करने का सही तरीका क्या है?

चित्रा 1 - JSP कोड का टुकड़ा

<netui:form action="doAction1" method="post"> 
    <netui:select dataSource="actionForm.field1" 
        optionsDataSource="${actionForm.field1Selections}" 
        onChange="submitForm(this.form, 'doAction2')"/> 

    <p/> 
    <netui:button>Submit</netui:button> 
</netui:form> 

चित्र 2 - JavaScript फ़ंक्शन प्रपत्र कार्रवाई बदल सकते हैं और प्रपत्र प्रस्तुत करने के लिए

<netui:scriptBlock placement="before"> 

    function submitForm(form, newAction) { 
     form.action = newAction; 
     form.submit();    
    } 

</netui:scriptBlock> 

उत्तर

0
function submitForm(form, newAction) { 
    form.action = newAction + ".do"; 
    form.submit();     
} 

या

<c:url var="newActionUrl" value="/the/path/to/the/action/doAction2.do"/> 

<netui:select dataSource="actionForm.field1" 
       optionsDataSource="${actionForm.field1Selections}" 
       onChange="submitForm(this.form, '${newActionUrl}')"/> 
संबंधित मुद्दे