फॉर्म सबमिट पर एक नई विंडो कैसे खोलें


127

मेरे पास एक सबमिट फ़ॉर्म है और यह चाहते हैं कि जब उपयोगकर्ता फ़ॉर्म को सबमिट करे तो मैं एक नई विंडो खोलें, ताकि मैं इसे एनालिटिक्स पर ट्रैक कर सकूं।

यहाँ कोड का उपयोग कर रहा हूँ:

<form action="http://URL at mailchimp subscriber URL.com" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" onclick=window.open(google.html,'','scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');>
    <label for="name">Your Name</label><input type="text" value="" name="FNAME" class="required" id="mce-FNAME">
    <br/>
    <br/>
    <label for="email">Your Email </label><input type="text" value="" name="EMAIL" class="required email" id="mce-EMAIL">
    <br/>
    <br/>
    <input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="submit">
</form>
</div>

जवाबों:


272

जावास्क्रिप्ट के लिए कोई ज़रूरत नहीं है, आपको बस target="_blank"अपने फॉर्म टैग में एक विशेषता जोड़ना होगा ।

<form target="_blank" action="http://example.com"
      method="post" id="mc-embedded-subscribe-form"
      name="mc-embedded-subscribe-form" class="validate"
>

5
यदि आप लक्ष्य = _blank जोड़ते हैं, तो आपको onClick ईवेंट की आवश्यकता नहीं है।
WhyNotHugo

5
खुशी है कि इस पोस्ट पर ठोकर खाई है! प्रपत्र टैग में लक्ष्य = "_ रिक्त" जोड़ने से नई विंडो खोलने की मेरी समस्या का समाधान हो गया!
kaitlynjanine

3
यह ओपी के सवाल का सही जवाब नहीं देता है, लेकिन यह सामान्य रूप से अधिक उपयोगी उत्तर हैtarget="_blank"
किप

2
लक्ष्य = "रिक्त" ठीक काम करता है। developer.mozilla.org/en-US/docs/HTML/Element/form
एरिक

5
कम से कम IE 11 पर, लक्ष्य = "_ blank" एक नई ब्राउज़र विंडो बनाने के बजाय वर्तमान ब्राउज़र विंडो में एक नया टैब बनाता है ..... IMHO, एक नया टैब एक नई ब्राउज़र विंडो से अलग है
मार्सेलो बेज़रा

33

वेब-आधारित डेटाबेस एप्लिकेशन में, जो डेटाबेस डेटा का प्रिंट-आउट प्रदर्शित करने के लिए पॉप-अप विंडो का उपयोग करता है, यह हमारी आवश्यकताओं के लिए पर्याप्त रूप से काम करता है (क्रोम 48 में परीक्षण):

<form method="post" 
      target="print_popup" 
      action="/myFormProcessorInNewWindow.aspx"
      onsubmit="window.open('about:blank','print_popup','width=1000,height=800');">

चाल को हैंडलर में कॉल में दूसरे तर्क के साथ टैग targetपर विशेषता से मेल खाना है ।<form>window.openonsubmit


इससे विंडो साइज कंट्रोल होता है। अति उत्कृष्ट।
चूने

इस पृष्ठ में सबसे अच्छा समाधान, यह परीक्षण किया और पूर्णता के लिए काम करता है।
मन्नी रामिरेज़

यह वही है जो मैं एक अलग विंडो में पीडीएफ सबमिट करते समय पीडीएफ के लिए खोज रहा था।
jrob007

7

onclickउस क्रिया को संलग्न करने के लिए सबसे अच्छी घटना नहीं हो सकती है। किसी को भी फॉर्म में कहीं भी क्लिक करने पर यह विंडो खुल जाएगी।

<form action="..." ...
    onsubmit="window.open('google.html', '_blank', 'scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');return true;">

7

फार्म की targetविशेषता के समान प्रभाव के लिए , आप या की formtargetविशेषता का भी उपयोग कर सकते हैं ।input[type="submit]"button[type="submit"]

से MDN :

... यह विशेषता एक नाम या कीवर्ड है जो दर्शाता है कि फॉर्म सबमिट करने के बाद प्राप्त होने वाली प्रतिक्रिया को प्रदर्शित करने के लिए कहां है। यह एक ब्राउज़िंग संदर्भ (उदाहरण के लिए, टैब, विंडो या इनलाइन फ़्रेम) के लिए या कीवर्ड का एक नाम है। यदि यह विशेषता निर्दिष्ट की जाती है, तो यह तत्वों के प्रपत्र स्वामी की लक्ष्य विशेषता को ओवरराइड करती है। निम्नलिखित खोजशब्दों के विशेष अर्थ हैं:

  • _self: वर्तमान के रूप में एक ही ब्राउज़िंग संदर्भ में प्रतिक्रिया लोड करें। यदि विशेषता निर्दिष्ट नहीं है, तो यह मान डिफ़ॉल्ट है।
  • _blank: प्रतिक्रिया को एक नए अनाम ब्राउज़िंग संदर्भ में लोड करें।
  • _parent: वर्तमान एक के मूल ब्राउज़िंग संदर्भ में प्रतिक्रिया लोड करें। यदि कोई माता-पिता नहीं है, तो यह विकल्प उसी तरह से व्यवहार करता है जैसे कि स्वयं।
  • _top: शीर्ष-स्तरीय ब्राउज़िंग संदर्भ में प्रतिक्रिया लोड करें (अर्थात, ब्राउज़िंग संदर्भ जो वर्तमान एक का पूर्वज है, और जिसका कोई अभिभावक नहीं है)। यदि कोई माता-पिता नहीं है, तो यह विकल्प उसी तरह से व्यवहार करता है जैसे कि स्वयं।

कई सबमिट बटन होने पर बहुत उपयोगी है।
hrvoj3e

ऐसा लगता है कि उन्होंने इनपुट तत्व पृष्ठ से उस सामग्री को हटा दिया है। : Formtarget विशेषता के बारे में इसी प्रकार के जानकारी बटन तत्व पृष्ठ पर पाया जा सकता है developer.mozilla.org/en-US/docs/Web/HTML/Element/...
peater

3

आपको जो कोड दिया गया है, उसे ठीक करना होगा। फॉर्म टैग में आपको डबल क्‍लिक में ऑन क्‍लिक विशेषता मान को संलग्न करना होगा:

"window.open('google.htm','','scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');"

आपको यह भी ध्यान रखना होगा कि window.openउद्धरणों का उपयोग करते हुए पहले पैरामीटर को भी संलग्न किया जाना चाहिए।


2

मैं आम तौर पर एक नए टैब / विंडो में किसी भी बाहरी लिंक को खोलने के लिए विश्व स्तर पर एक छोटे jQuery स्निपेट का उपयोग करता हूं। मैंने अपनी साइट के लिए एक फॉर्म के लिए चयनकर्ता जोड़ा है और यह अब तक ठीक काम करता है:

// URL target
    $('a[href*="//"]:not([href*="'+ location.hostname +'"]),form[action*="//"]:not([href*="'+ location.hostname +'"]').attr('target','_blank');

0

मेरा मानना ​​है कि आपके लिए यह jquery काम अच्छी तरह से नीचे एक कोड की जाँच करें।

यह आपके सबमिट एक्शन कार्यों को बनाएगा और नए टैब में एक लिंक खोलेगा चाहे आप एक्शन यूआरएल फिर से खोलना चाहते हैं या एक नया लिंक

jQuery('form').on('submit',function(e){
setTimeout(function () { window.open('https://www.google.com','_blank');}, 1000);});})

यह कोड मेरे लिए एकदम सही है।


-4

window.open सभी ब्राउज़रों में काम नहीं करता है, इसे Google और आप सही संवाद प्रकार का पता लगाने का एक तरीका पाएंगे।

इसके अलावा, ऑनक्लिक कॉल को इनपुट बटन पर ले जाएं, जब उपयोगकर्ता डूब जाता है, तो केवल आग लगाने के लिए।


1
इनपुट बटन पर क्लिक करना गलत है। फिर, यदि उपयोगकर्ता इसे क्लिक करता है, लेकिन रिलीज़ होने से पहले दूर चला जाता है, तो यह अभी भी आग लगाएगा।
मैथ्यू फ़्लेशेन

-12

मुझे इसका भी हल मिल गया। इस पृष्ठ ने आज मेरी मदद की, मैं यहां भी फिर से पोस्ट कर रहा हूं।

/** This is the script that will redraw current screen and submit to paypal. */
echo '<script>'."\n" ;
echo 'function serverNotifySelected()'."\n" ;
echo '{'."\n" ;
echo '    window.open(\'\', \'PayPalPayment\');'."\n" ;
echo '    document.forms[\'paypal_form\'].submit();'."\n" ;
echo '    document.forms[\'server_responder\'].submit();'."\n" ;
echo '}'."\n" ;
echo '</script>'."\n" ;

/** This form will be opened in a new window called PayPalPayment. */
echo '<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" name="paypal_form" method="post" target="PayPalPayment">'."\n" ;
echo '<input type="hidden" name="cmd" value="_s-xclick">'."\n" ;
echo '<input type="hidden" name="custom" value="'.$transaction_start.'">'."\n" ;
echo '<input type="hidden" name="hosted_button_id" value="'.$single_product->hosted_button_id.'">'."\n" ;
echo '<table>'."\n" ;
echo '    <tr>'."\n";
echo '        <td><input type="hidden" name="'.$single_product->hide_name_a.'" value="'.$single_product->hide_value_a.'">Local</td>'."\n" ;
echo '    </tr>'."\n" ;
echo '    <tr>'."\n" ;
echo '        <td>'."\n" ;
echo '        <input type="hidden" name="'.$single_product->hide_name_b.'" value="'.$single_product->hide_value_b.'" />'.$single_product->short_desc.' $'.$adj_price.' USD'."\n" ;
                // <select name="os0">
                //     <option value="1 Day">1 Day $1.55 USD</option>
                //     <option value="All Day">All Day $7.50 USD</option>
                //     <option value="3 Day">3 Day $23.00 USD</option>
                //     <option value="31 Day">31 Day $107.00 USD</option>
                // </select>
echo '        </td>'."\n" ;
echo '    </tr>'."\n" ;
echo '</table>'."\n" ;
echo '<input type="hidden" name="currency_code" value="USD">'."\n" ;
echo '</form>'."\n" ;

/** This form will redraw the current page for approval. */
echo '<form action="ProductApprove.php" name="server_responder" method="post" target="_top">'."\n" ;
echo '<input type="hidden" name="trans" value="'.$transaction_start.'">'."\n" ;
echo '<input type="hidden" name="prod_id" value="'.$this->product_id.'">'."\n" ;
echo '</form>'."\n" ;

/** No form here just an input and a button.  onClick will handle all the forms */
echo '<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" alt="PayPal - The safer, easier way to pay online!" onclick="serverNotifySelected()">'."\n" ;
echo '<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">'."\n" ;

उपरोक्त कोड एक बटन का कोड है। आप बटन दबाते हैं और यह वर्तमान स्क्रीन को खरीद से पूर्व-अनुमोदन के लिए फिर से तैयार करेगा। उसी समय यह एक नई विंडो खोलता है और उस नई विंडो को पेपल को सौंपता है।


5
ओपी ने कहा है कि वे कोड के लिए नए हैं - आईएमओ पेपाल बटन से संबंधित (भारित स्वरूपित) कोड का पूरा लोड पोस्ट करने में उनकी मदद करने वाला नहीं है
माइक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.