একটি পোস্ট ফর্ম জমা দেওয়ার পরে ফলাফলটি দেখায় একটি নতুন উইন্ডো খুলুন


149

একটি ফর্ম জমা দেওয়ার মতো জাভাস্ক্রিপ্ট পোস্টের অনুরোধ আপনাকে জাভাস্ক্রিপ্টে পোষ্টের মাধ্যমে তৈরি করা ফর্মটি কীভাবে জমা দিতে হয় তা দেখায়। নীচে আমার সংশোধিত কোড দেওয়া আছে।

var form = document.createElement("form");

form.setAttribute("method", "post");
form.setAttribute("action", "test.jsp");

var hiddenField = document.createElement("input");  

hiddenField.setAttribute("name", "id");
hiddenField.setAttribute("value", "bob");
form.appendChild(hiddenField);
document.body.appendChild(form); // Not entirely sure if this is necessary          
form.submit();

আমি যা করতে চাই তা হল একটি নতুন উইন্ডোতে ফলাফলগুলি খুলতে। আমি বর্তমানে একটি নতুন উইন্ডোতে একটি পৃষ্ঠা খুলতে এরকম কিছু ব্যবহার করছি:

onclick = window.open(test.html, '', 'scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');

2
লক্ষ্য করুন document.body.appendChild(form) নেই প্রয়োজনীয় দেখুন stackoverflow.com/q/42053775/58241
benrwb

উত্তর:


220

যোগ

<form target="_blank" ...></form>

অথবা

form.setAttribute("target", "_blank");

আপনার ফর্ম সংজ্ঞা


ফর্ম উপাদানটিতে অ্যাট্রিবিউট আইডি যুক্ত মনে রাখবেন, অন্যথায় এটি পপআপ ব্লকার বন্ধ থাকা সত্ত্বেও সাফারি ব্রাউজারে কাজ করে না। <ফর্ম আইডি = "পপআপফর্ম" টার্গেট = "_ ফাঁকা" ...> </ for >
নরেন

131

আপনি যদি জাভাস্ক্রিপ্ট থেকে আপনার ফর্মটি তৈরি করতে এবং আপনার প্রশ্নের মতো জমা দিতে চান এবং আপনি কাস্টম বৈশিষ্ট্য সহ পপআপ উইন্ডোটি তৈরি করতে চান তবে আমি এই সমাধানটি প্রস্তাব করছি (আমি যুক্ত লাইনগুলির উপরে মন্তব্য রেখেছি):

var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "test.jsp");

// setting form target to a window named 'formresult'
form.setAttribute("target", "formresult");

var hiddenField = document.createElement("input");              
hiddenField.setAttribute("name", "id");
hiddenField.setAttribute("value", "bob");
form.appendChild(hiddenField);
document.body.appendChild(form);

// creating the 'formresult' window with custom features prior to submitting the form
window.open('test.html', 'formresult', 'scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');

form.submit();

18
+1 স্বীকৃত উত্তরের চেয়ে ভাল, যেহেতু এটি ওপি চেয়েছিল বিকল্পগুলির সাথে ফলাফলটি পপআপে রাখে।
নিকোল

আইইয়ের জন্য আমার পক্ষে কাজ করে না - এটি নির্দিষ্ট বৈশিষ্ট্যযুক্ত একটি নতুন উইন্ডো তৈরি করে এবং তারপরে পূর্ববর্তী উইন্ডোটি খালি রেখে ফলাফলটি অন্য নতুন উইন্ডোতে লোড করে।
mjaggard

1
@ এমজাগগার্ড: আপনি কী যুক্ত করেছেন? এই উত্তরের একটি সম্পাদনার পরামর্শ দেওয়া উচিত।
মাইকেল ময়র্স

3
@SaurabhNanda যতদুর আমি বলতে পারেন, targetউপর অ্যাট্রিবিউট formউপাদান হয় অবচিত না মধ্যে এইচটিএমএল 4.01 ট্রানজিশনাল এবং দৃশ্যত থাকতে হয় এইচটিএমএল 5
মার্কো ডুমিক

1
একটি সতর্কতা: এটি কাজ করার আগে আমাকে ফর্মটি নথির বডিতে সংযুক্ত করতে হয়েছিল (এফএফ 17 এ)। একটি খণ্ড তৈরি করা এবং এটি সংযোজন করার চেষ্টা করা কার্যকর হয়নি।
voidstate

8
var urlAction = 'whatever.php';
var data = {param1:'value1'};

var $form = $('<form target="_blank" method="POST" action="' + urlAction + '">');
$.each(data, function(k,v){
    $form.append('<input type="hidden" name="' + k + '" value="' + v + '">');
});
$form.submit();

আমি কি কিছু মিস করছি, বা আপনার এখনও .appendনিকটতম ফর্ম ট্যাগটি লাগবে?
দ্য জলিসিন

আমি মনে করি এটি একটি সেরা অনুশীলনের জন্য ফর্মটি অপসারণের পরে ফর্মটি সংযুক্ত করার পরে এটি অসম্পূর্ণ।
ncubica

@ জ্যালিসিন: ট্যাগটিতে jQuery কল করার পরে, এটি একটি আসল DOM উপাদান রূপান্তরিত হবে এবং ডোমে প্রবেশ করার পরে এটি বন্ধ হয়ে যাবে।
জানুস ট্রয়লসেন

1
আমি মনে করি একটি অনুপস্থিত অ্যাপেন্ডটো আছে ('বডি') এবং শেষ লাইনটি এইভাবে লেখা উচিত:$form.appendTo('body').submit();
পিব্রোকম্যান

1

আমি এই প্রাথমিক পদ্ধতিটি জানি:

1)

<input type=”image src=”submit.png”> (in any place)

2)

<form name=”print”>
<input type=”hidden name=”a value=”<?= $a ?>”>
<input type=”hidden name=”b value=”<?= $b ?>”>
<input type=”hidden name=”c value=”<?= $c ?>”>
</form>

3)

<script>
$(‘#submit’).click(function(){
    open(”,”results”);
    with(document.print)
    {
        method = POST”;
        action = results.php”;
        target = results”;
        submit();
    }
});
</script>

কাজ করে!


3
jquery সঙ্গে thats! তিনি খাঁটি জেএস
এভিয়েট্রিক্স

1

ফ্লো উইন্ডোটির সহজতম সমাধান সমাধান (ক্রোমে পরীক্ষিত):

<form action='...' method=post target="result" onsubmit="window.open('','result','width=800,height=400');">
    <input name="..">
    ....
</form>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.