jQuery। পরিবর্তন পরিবর্তন ইনপুট মান পরিবর্তন করে না


104

মানটির সাথে একটি লিঙ্ক সহ আমার একটি HTML ইনপুট রয়েছে।

<input type = 'text' value = 'http://www.link.com' id = 'link' />

আমি নির্দিষ্ট ইভেন্টের মান পরিবর্তন করতে jQuery ব্যবহার করছি।

$('#link').val('new value');

উপরের কোডটি পাঠ্য বাক্সের মান পরিবর্তন করে তবে কোডটিতে মান পরিবর্তন করে না (মান = 'http://www.link.com' অপরিবর্তিত থাকে)। পাশাপাশি পরিবর্তন করার জন্য আমার মান = '' দরকার।


আপনি কি বলতে চাইছেন in the code? আপনি কি পৃষ্ঠার মূল (এইভাবে, সংশোধিত) উত্সটি দেখছেন?
ফ্রিডরিক হামিদি

Chrome এর পরিদর্শন উপাদানটি ব্যবহার করা।
লুকাশ

4
@ লুক মানটি পরিবর্তন হবে তবে ক্রোমের ইন্সপেক্টরটিতে এইচটিএমএল উপাদানটির দৃশ্যমান মান হ'ল না। এরপরে মানটিকে সতর্ক করার বা কনসোলে আউটপুট করার চেষ্টা করুন এবং আপনি দেখতে পাবেন এটি পরিবর্তন হয়েছে। দেখুন, এটি পরিবর্তিত হয়েছে: jsfiddle.net/a8SxF
TheZ

হ্যাঁ আমি এখন এটি দেখতে। আমি ক্লিপবোর্ডে মানটি অনুলিপি করতে zClip ব্যবহার করছি তবে এটি পুরানো মানটি পরিবর্তিত হওয়ার পরে এটি অনুলিপি করছে। আমি মনে করি আমি কিছুটা গোলযোগের সাথে এটি ঠিক করতে পারি।
লুকাশ

উত্তর:


185

attrপরিবর্তে ব্যবহার করুন।
$('#link').attr('value', 'new value');

ডেমো


6
এটি সম্পূর্ণ সঠিক, setAttributejQuery ব্যবহার করে attrআপনি DOM উপাদানটির মানকেও
TheZ

4
@ZZ এর কারণ ইনপুটটির নোংরা মান পতাকাটি মিথ্যা।
ইনপুটটির সাথে

5
তবে আপনি যখন এইচটিএমএল পেতে চান .html(), তারপরে এখনও একই পুরানো মান থাকবে না, আপনি যদি ব্যবহার করেন .val('new value')বা attr('value', 'new value')... :(
লিওনিয়ার

6
.Val ব্যবহার করে একটি বিশাল এবং জটিল ফাংশন কোড করেছিলেন (আমি আগে যা পড়েছি তার দ্বারা প্রস্তাবিত) এবং এই ঠিক একই সমস্যা ছিল। রক্তাক্ত বিরক্তিকর! এই উত্তরটি কোনও গৌণভাবে ফর্ম উপাদানগুলি আপডেট করার জন্য খুঁজছেন এমন কোন jQuery newbies এর কলের প্রথম পয়েন্ট হওয়া উচিত। আমি যদি এই প্রথম পড়তাম তবে আমাকে কয়েক ঘন্টা বাঁচাতে পারত!
অনুদান দিন

4
এই কারণেই জাভাস্ক্রিপ্ট / জিকুয়েরির সাথে চলমান স্থলটিকে আঘাত করা এতটা কঠিন, এরকম অনেকগুলি ক্যাভেট। এটি আমাকে অনেক সাহায্য করেছিল। ধন্যবাদ!
eaglei22

13

মান সম্পত্তি পরিবর্তন করা পরিবর্তন করে না defaultValue। কোডে (এর সাথে পুনরুদ্ধার করা .html()বা innerHTML) পুনরুদ্ধার করা মানটির সাথে মান মানটি থাকবে defaultValueনা property


4
এটি এটি ব্যাখ্যা করে। টাইপিং <ইনপুট আইডি = 'এ' মান> পরিবর্তন করে না তবে $ ("# এ") এর ফলকে প্রভাবিত করে val ভাল ()। একটি প্রশ্ন ঠিক নিশ্চিত করার জন্য: $ ("# a")। ভাল (মান) কীভাবে কোনও ইনপুট উপাদানটির মান পরিবর্তন করতে হয়, যাতে সঠিক মান জমা দেওয়া যায়?
ড্যানিয়েল কাটজ

4
হা ঐটা ঠিক. বৈশিষ্ট্য পরিবর্তন করা যা জমা দেওয়া হচ্ছে তা পরিবর্তন করবে না।
কেভিন বি

8

রিকার্ডোর উত্তরে কিছুটা প্রসারিত করতে: https://stackoverflow.com/a/11873775/7672426

http://api.jquery.com/val/#val2

ভাল সম্পর্কে ()

এই পদ্ধতিটি ব্যবহার করে (বা দেশীয় মান সম্পত্তি ব্যবহার করে) মান নির্ধারণের ফলে পরিবর্তন ইভেন্টটি প্রেরণের কারণ হয় না। এই কারণে, প্রাসঙ্গিক ইভেন্ট হ্যান্ডলারগুলি কার্যকর করা হবে না। আপনি যদি এগুলি কার্যকর করতে চান তবে মান নির্ধারণের পরে আপনার .trigger ("পরিবর্তন") কল করা উচিত।


2

এটি আমার কাছে ঘটে যাওয়া একটি সম্ভাব্য দৃশ্য। ঠিক আছে যদি এটি কাউকে সাহায্য করে তবে দুর্দান্ত: আমি একটি জটিল অ্যাপ লিখেছিলাম যা কোথাও কোড সহ আমি সমস্ত পাঠ্যবাক্সের মানগুলি দেখানোর আগে সেগুলি সাফ করার জন্য একটি ফাংশন ব্যবহার করেছি। কিছু সময় পরে আমি জ্যাকোরি ভ্যাল ('মান') ব্যবহার করে একটি পাঠ্যবাক্স মান সেট করার চেষ্টা করেছি তবে আমি লক্ষ্য করিনি যে এর পরে আমি ক্লিয়ারআল ইনপুটস পদ্ধতিটি চালু করেছি .. সুতরাং, এটিও ঘটতে পারে।


1
$('#link').prop('value', 'new value');

ব্যাখ্যা: অট্টর jQuery 1.6 এ কাজ করবে তবে jQuery 1.6.1 হিসাবে জিনিস পরিবর্তন হয়েছে। বেশিরভাগ ক্ষেত্রে প্রপ () অ্যাটর্ () ব্যবহার করত। আপনার কোডে প্রপ () দিয়ে অ্যাটর্কে () এ কলগুলি প্রতিস্থাপন করা সাধারণত কাজ করবে। পৃষ্ঠার লোডের এইচটিএমএল-তে সংজ্ঞায়িত হওয়ার সাথে সাথে অ্যাট্রিক আপনাকে উপাদানটির মান দেবে এবং প্রসেসটি jQuery এর মাধ্যমে সংশোধিত উপাদানগুলির আপডেট হওয়া মানগুলি দেয়।


আপনার
উত্তরটিও

0

আমার অনুরূপ সমস্যাটি নির্বাচকটিতে বিশেষ অক্ষর (যেমন পিরিয়ড) থাকার কারণে ঘটেছিল।

বিশেষ চরিত্রগুলি এড়ানোর জন্য ঠিক করা হয়েছিল:

$("#dots\\.er\\.bad").val("mmmk");

4
সম্মত, খুব খারাপ, আপনার পালানো উচিত নয়, আপনার উপাদানটির আইডিটির নতুন নামকরণ করা উচিত।
ওয়েবাহোলিক

-1
<script src="//code.jquery.com/jquery.min.js"></script>
<script>
function changes() {
$('#link').val('new value');
}
</script>
<button onclick="changes()">a</button>
<input type='text' value='http://www.link.com' id='link'>

4
হ্যাঁ যদিও এটি আসল মান আপডেট করে না। এটি অন স্ক্রিনের পাঠ্য বাক্সটিকে আপডেট করে, তবে আপনি যখন কোনও ফর্ম জমা দেওয়ার চেষ্টা করবেন তখন পৃষ্ঠাটি মূলত লোড হওয়ার সময় যা কিছু ছিল তা মান হয়।
অনুদান দিন

-1

আমার জন্য সমস্যা হ'ল এই ক্ষেত্রটির জন্য মান পরিবর্তন করা কার্যকর হয়নি:

$('#cardNumber').val(maskNumber);

উপরের কোনও সমাধানই আমার পক্ষে কাজ করেনি তাই আমি আরও তদন্ত করে দেখতে পেলাম:

ডিওএম স্তর 2 ইভেন্টের উল্লেখ অনুসারে: কোনও পরিবর্তন যখন ইনপুট ফোকাস হারায় এবং ফোকাস অর্জনের পর থেকে এর মান পরিবর্তন করা হয় তখন পরিবর্তন ইভেন্টটি ঘটে। এর অর্থ হল যে পরিবর্তন ইভেন্টটি ব্যবহারকারীর মিথস্ক্রিয়া দ্বারা পরিবর্তনের জন্য ডিজাইন করা হয়েছে। প্রোগ্রাম্যাটিক পরিবর্তনগুলির কারণে এই ইভেন্টটি বরখাস্ত হয় না।

সমাধানটি হ'ল ট্রিগার ফাংশন যুক্ত করা এবং এটির পরিবর্তিত ইভেন্টটিকে ট্রিগার করার কারণ:

$('#cardNumber').val(maskNumber).trigger('change');

-2

অ-অনন্য আইডি সহ একাধিক উপাদানের জন্য ডাবল চেক করুন! ফোরচ লুপ এবং আমার আইডিটির সদৃশ নিয়ে আমার পরিস্থিতি ছিল।

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