কোনও ক্রিয়া ছাড়াই ফর্ম এবং যেখানে প্রবেশ পৃষ্ঠা পুনরায় লোড করে না


95

আমি এইচটিএমএল ফর্ম তৈরির সর্বাধিক নিকটতম উপায়টি সন্ধান করছি যার জমা বোতামটি নেই। এটি নিজেই যথেষ্ট সহজ, তবে যখন সাবমিশন-মতো জিনিসগুলি করা হয় তখন ফর্মটি নিজেকে পুনরায় লোড করা থেকে বিরত রাখতে হবে (উদাহরণস্বরূপ, Enterকোনও পাঠ্যের ক্ষেত্রে আঘাত করা )।


আপনি কি এটি জমা দিতে চান না?
আপক্রিক

যদি আপনার কেবলমাত্র একটি <ফর্ম> সাথে একটি একক <ইনপুট> এটি একটি পাঠ্য ক্ষেত্র হয় যা আপনি প্রবেশের সময় হিট করার সময় এটি জমা দেওয়া উচিত নয়, এটি কি করা উচিত?
জ্যাক দ্য হিউম্যান

আমি এটি অন্য কোনও শর্তে জমা দিতে চাই (আসলে একটি নির্দিষ্ট বোতামটি চাপছে)। সমস্যাটি হ'ল আমি 'টেক্সট ক্ষেত্রে থাকাকালীন' পোস্ট করার / একই url তে না হওয়ার জন্য আচরণের আচরণ করতে অক্ষম। সুতরাং আমার সাবধানে তৈরি ফর্ম, যেখানে আপনাকে এটি জমা দেওয়ার জন্য এক্স, ওয়াই এবং জেড করা দরকার তা ভুলভাবে ব্যবহারকারীকে প্রবেশের মাধ্যমে প্রবেশের মাধ্যমে জমা দেওয়া যেতে পারে।
ম্যাট রবার্টস

উত্তর:


44

ফর্মটিতে একটি অনসামিত হ্যান্ডলার যুক্ত করুন (হয় প্লেইন জেএস বা জ্যাকুই via () এর মাধ্যমে জমা দিন (এফএন)), এবং আপনার নির্দিষ্ট শর্তগুলি পূরণ না করা হলে মিথ্যা ফিরিয়ে দিন।

যদি না আপনি ফর্মটি জমা দিতে চান, তবে - যে ক্ষেত্রে, কেবলমাত্র ফর্মের উপাদানটির উপর 'ক্রিয়া' গুণটি ছেড়ে দেবেন না কেন?


153
actionমান অনুসারে কোনও বৈশিষ্ট্য ছাড়াই একটি ফর্ম কোনও ফর্ম নয় - এবং আসলে কিছু ব্রাউজারে একটি পৃষ্ঠা পুনরায় লোড ঘটায় .. আমি খুঁজে পেয়েছি যে এটি action="javascript:void(0);"ভালভাবে কাজ করে।
Dutchie432

ডাচদের উত্তর সঠিকভাবে কাজ করে। ফায়ারফক্স কেবল পৃষ্ঠাটি সতেজ করছে।
আইএএমগ্রুট

4
@ Dutchie432 এর একটি মন্তব্যের পরিবর্তে একটি উত্তর তৈরি করা উচিত। তারপরে এটি যেখানে থাকবে তার শীর্ষে পৌঁছে দেবে। অন্যথা, KPrime তার উত্তর, অ্যাকশন বাদ আমাকে জন্য কাজ না করে যেহেতু সমন্বয় পারে ...
ঋষি

213

action="javascript:void(0);"পৃষ্ঠা পুনরায় লোডগুলি রোধ করতে এবং এইচটিএমএল মান বজায় রাখতে আপনি আপনার ফর্মটিতে অন্তর্ভুক্ত করতে চাইবেন ।


4
এন্টার টিপানোর সময় সাবমিট বাটন ডিফল্ট অ্যাকশনটি দমন করার চেষ্টা করার জন্য মাত্র 2 দিন অতিবাহিত করেছেন, কারণ যদিও ক্রিয়াটি হয়েছিল, পৃষ্ঠাটি পুনরায় লোডিং (ফায়ারফক্স) শেষ হয়েছে। ফর্মটিতে ক্রিয়া হিসাবে জাভাস্ক্রিপ্ট অকার্যকরভাবে যুক্ত করা এটি স্থির করে। তার জন্য ধন্যবাদ.
টনি পায়েেন

এই অতিরিক্ত উত্তরের জন্য ধন্যবাদ। এটি এখনও কাজ করে - তবে এটি কি এখনও 2016 সালে "শিল্পের রাজ্য" সমাধান?
লো

4
@ ল_রেেন্টস আমি এখনও এটি সর্বদা ব্যবহার করি এবং ব্যক্তিগতভাবে এর থেকে ভাল সমাধান আমি পাইনি।
Dutchie432

4
এন্টার কী টিপানোর সময় পৃষ্ঠাটির পুনরায় লোডিং সমাধান করার জন্য সুনির্দিষ্ট এবং দুর্দান্ত সমাধানের জন্য আপনাকে ধন্যবাদ :) সেরা সমাধান।
ইমরান রফিক বরং

9

এই ইভেন্টটিকে কেবল আপনার পাঠ্য ক্ষেত্রে যুক্ত করুন। এটি এন্টার টিপে জমা দেওয়া আটকাবে এবং আপনি জমা দেওয়ার বোতাম বা কল ফর্মটি মুক্ত করতে পারেন required

onKeyPress="if (event.which == 13) return false;"

উদাহরণ স্বরূপ:

<input id="txt" type="text" onKeyPress="if (event.which == 13) return false;"></input>

4
এটার জন্য ধন্যবাদ. আপনার ভয়েসের স্পষ্টতা আমাকে পূর্বের উত্তরের যথার্থতা স্পষ্ট করে দিয়েছিল তাই আপনি গৃহীত উত্তর না পেয়ে তবে আপনি আমার কৃতজ্ঞতা এবং উত্সাহ পেতে পারেন!
ম্যাট রবার্টস

4
ধন্যবাদ. সাহায্য করে আনন্দ পেলাম. যাইহোক আমি কখনও লাইমলাইটের জন্য ছিলাম না। ;)
জেনেরিকমেটইনিট

5

আপনি যখন কোনও ফর্মের মধ্যে এন্টার টিপেন তখন ফর্মের প্রাকৃতিক আচরণটি জমা দেওয়া হয়, এই আচরণটি প্রাকৃতিক নয় যা বন্ধ করতে হয়, আপনাকে jquery সহ এটি জমা দিতে (ডিফল্ট আচরণ) আটকাতে হবে:

$("#yourFormId").on("submit",function(event){event.preventDefault()})

4

একটি ধারণা:

<form method="POST" action="javascript:void(0);" onSubmit="CheckPassword()">
    <input id="pwset" type="text" size="20" name='pwuser'><br><br>
    <button type="button" onclick="CheckPassword()">Next</button>
</form>

এবং

<script type="text/javascript">
    $("#pwset").focus();
    function CheckPassword()
    {
        inputtxt = $("#pwset").val();
        //and now your code
        $("#div1").load("next.php #div2");
        return false;
    }
</script>

1

সমাধানের দুটি উপায়:

  1. ফর্মটির ক্রিয়া মান হ'ল "জাভাস্ক্রিপ্ট: শূন্য (0);"।
  2. জমা দেওয়া রোধ করতে ফর্মের জন্য কী-চাপড়ান ইভেন্ট শ্রোতাদের যুক্ত করুন।

কী-টিপস ইভেন্টটি (উদাহরণস্বরূপ কী প্রবেশ করানো) শুনে আপনাকে textareas এর সমস্যায় ফেলতে পারে এবং সম্ভবত স্বয়ংসম্পূর্ণতা বা ড্রপডাউন নির্বাচন করা এবং মোবাইল সমস্যার অন্য উত্স হতে পারে।
ভাগ্যদেহ ডোনাল্ড

0

প্রথম প্রতিক্রিয়া হ'ল সেরা সমাধান:

ফর্মটিতে একটি অনসামিত হ্যান্ডলার যুক্ত করুন (হয় প্লেইন জেএস বা জ্যাকুই via () এর মাধ্যমে জমা দিন (এফএন)), এবং আপনার নির্দিষ্ট শর্তগুলি পূরণ না করা হলে মিথ্যা ফিরিয়ে দিন।

Jquery সঙ্গে আরও নির্দিষ্ট:

$('#your-form-id').submit(function(){return false;});

যদি না আপনি ফর্মটি জমা দিতে চান, তবে - যে ক্ষেত্রে, কেবলমাত্র ফর্মের উপাদানটির উপর 'ক্রিয়া' গুণটি ছেড়ে দেবেন না কেন?

ক্রোম এক্সটেনশনগুলি লেখার একটি উদাহরণ যেখানে আপনার ব্যবহারকারীর ইনপুটটির জন্য একটি ফর্ম থাকতে পারে তবে আপনি এটি জমা দিতে চান না। যদি আপনি অ্যাকশন = "জাভাস্ক্রিপ্ট: অকার্যকর (0);" ব্যবহার করেন তবে কোডটি সম্ভবত কাজ করবে তবে আপনি এই সমস্যাটি শেষ করবেন যেখানে আপনি ইনলাইন জাভাস্ক্রিপ্ট চালানো সম্পর্কে ত্রুটি পাবেন।

আপনি যদি ক্রিয়াটি পুরোপুরি ছেড়ে দেন, ফর্মটি আবার লোড হবে যা কোনও ক্রোম এক্সটেনশান লেখার সময়ও কিছু ক্ষেত্রে অনাকাঙ্ক্ষিত। বা আপনার যদি কোনও এম্বেড থাকা ক্যালকুলেটরের সাথে কোনও ওয়েবপৃষ্ঠা থাকে, যেখানে ব্যবহারকারী কিছু ইনপুট সরবরাহ করে "গণনা" বা তার মতো কিছু ক্লিক করবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.