কিভাবে jquery এ টেক্সটবক্স মান সেট করতে হয়


107

আমি কীভাবে সঠিকভাবে jquery ব্যবহার করে একটি নির্দিষ্ট মানটিকে একটি পাঠ্যবক্সে লোড করব? নীচের একটিটি চেষ্টা করেছিলাম তবে আমি [object Object]আউটপুট হিসাবে পাই । দয়া করে এ সম্পর্কে আমাকে আলোকিত করুন, আমি জ্যাকুরিতে নতুন।

proc = function(x, y) {
  var str1 = $('#pid').value;
  var str2 = $('#qtytobuy').value;
  var str3 = $('#subtotal').load('compz.php?prodid=' + x + '&qbuys=' + y);
  $('#subtotal').val(str3);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<form name="yoh" method="get">
  Product id: <input type="text" name="pid" value=""><br/> 
  Quantity to buy:<input type="text" name="qtytobuy" value="" onkeyup="proc(document.yoh.pid.value, this.value);"></br>

  Subtotal:<input type="text" name="subtotal" id="subtotal" value=""></br>
  <div id="compz"></div>

</form>


str3 কি? এটি কোথায় ঘোষণা করা হয়? দেখে মনে হচ্ছে আপনি যখন কোনও বস্তুর মান হিসাবে লোড করার চেষ্টা করছেন তখন যখন সম্ভবত আপনার কেবলমাত্র সেই বস্তুর কোনও সম্পত্তি দরকার
Fgblanch

দুঃখিত, st3 = $ ('# সাবটোটাল') সেট করতে ভুলে গেছেন load লোড ('কমপেজ.এফপি? প্রোডিড =' + এক্স + '& কিউবিআই =' + ওয়াই);
ওয়ার্ন আচেটা

উত্তর:


170

আমি মনে করি আপনি 'compz.php?prodid=' + x + '&qbuys=' + yডান পাঠ্যবাক্সের মান হিসাবে ইউআরএল কলটির প্রতিক্রিয়া সেট করতে চান ? যদি তা হয় তবে আপনাকে এমন কিছু করতে হবে:

$.get('compz.php?prodid=' + x + '&qbuys=' + y, function(data) {
    $('#subtotal').val(data);
});

রেফারেন্স: get()

আপনার কোডে আপনার দুটি ত্রুটি রয়েছে:

  • load()রাখে এইচটিএমএল নিদিষ্ট উপাদান মধ্যে আয়াক্স থেকে প্রত্যাগত:

    সার্ভার থেকে ডেটা লোড করুন এবং প্রত্যাবর্তিত এইচটিএমএলকে ম্যাচের উপাদানগুলিতে রাখুন।

    আপনি এই পদ্ধতিটি সহ কোনও পাঠ্যবক্সের মান সেট করতে পারবেন না।

  • $(selector).load()একটি jQuery অবজেক্ট প্রদান করে । ডিফল্টরূপে কোনও বস্তুকে [object Object]স্ট্রিং হিসাবে গণ্য করার সময় রূপান্তর করা হয়।

আরও স্পষ্টতা :

আপনার URL টি রিটার্ন ধরে নিচ্ছে 5

যদি আপনার এইচটিএমএল দেখতে লাগে:

<div id="foo"></div>

তারপরে ফলাফল

$('#foo').load('/your/url');

হবে

<div id="foo">5</div>

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

<input id="foo">5</input>

তবে আপনার আসলে দরকার

<input id="foo" value="5" />

সুতরাং, আপনি ব্যবহার করতে পারবেন না load()। আপনাকে অন্য একটি পদ্ধতি ব্যবহার করতে হবে, প্রতিক্রিয়া পেতে হবে এবং এটিকে নিজেকে মূল্য হিসাবে সেট করতে হবে।


ফলাফলটি যেখানে বোঝা হচ্ছে সেখানেই যদি আমি কেবল পরিবর্তন করতে চাই তবে কি এটি আরও জটিল হয়ে উঠবে? উপরের আমার কোডটি কার্যকর যখন আমি এটি একটি ডিভিতে লোড করি।
ওয়ার্ন আনচেটা

1
@ আইয়াসু সাওদা: ঠিক আছে, আপনি বর্তমানে একটি জাভাস্ক্রিপ্ট অবজেক্টটি পাস করছেন $('#subtotal').val(str3);কারণ load()আপনি ভেবেছিলেন যে এটি কাজ করে না তেমন কার্যকর হয় না। হ্যাঁ, আপনি load()পাঠ্য বা এইচটিএমএল লোড করতে ব্যবহার করতে পারেন divতবে পাঠ্যবক্সের মান হিসাবে নয়।
ফেলিক্স ক্লিং

@ আইয়াসু সাওদা: আরও স্পষ্টতার জন্য আমার আপডেট দেখুন, আশা করি এটি সাহায্য করবে!
ফেলিক্স ক্লিং

একটি শেষ প্রশ্ন? আউটপুটে আসল ফলাফলের আগে আমি কেন ফাঁকা স্থান পাব? জিকুরিতে এগুলি ফেলা সম্ভব, মূলত কমপেজ.এফপি আরও ভাল পঠনযোগ্যতার জন্য অনেকগুলি শ্বেতস্পেস থাকে এবং সেই সাদা স্থানটি ফলাফলের সাথে একসাথে আউটপুট করা হয়
ওয়ার্ন আঁচেটা

@ আইয়াসু সাওদা: আপনি সাধারণ জাভাস্ক্রিপ্ট ফাংশনগুলি ব্যবহার করতে পারেন, যেমন নিয়মিত অভিব্যক্তি সহ:data = data.replace(/\s+/, '');
ফেলিক্স ক্লিং

56

নোট করুন যে .valueবৈশিষ্ট্যটি একটি জাভাস্ক্রিপ্ট বৈশিষ্ট্য। আপনি jQuery ব্যবহার করতে চাইলে, ব্যবহার করুন:

$('#pid').val()

মান পেতে, এবং:

$('#pid').val('value')

সেট করতে।

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

আপনার দ্বিতীয় সমস্যা সম্পর্কিত, আমি loadপদ্ধতিটি ব্যবহার করে স্বয়ংক্রিয়ভাবে এইচটিএমএল মানটি সেট করার চেষ্টা করিনি । অবশ্যই, আপনি এই জাতীয় কিছু করতে পারেন:

$('#subtotal').load( 'compz.php?prodid=' + x + '&qbuys=' + y, function(response){ $('#subtotal').val(response);
});

নোট করুন যে উপরের কোডটি নিরীক্ষিত।

http://api.jquery.com/load/


2
রেফারেন্সের উদ্দেশ্যে, প্রাসঙ্গিক jQuery এপিআই পৃষ্ঠাটি দেখানো উপযুক্ত val()
ডেভিড মনিকা

1
এমনকি যদি উপায়টি খুব বেসিক এটি দেখায়, সম্ভবত? শুধু আমার নম্র মতামত ... যাইহোক আপডেট!
মাউরো

compz.php ইনপুটটিতে 2 টির সংখ্যার গুণমান গণনা করে। আমি সেই অংশটি অনুমান করি যা গুণিত মানগুলি লোড করে: $ ('# সাবটোটাল') load অবজেক্ট হিসাবে চিকিত্সা করা হচ্ছে এ কারণেই আমি অবজেক্ট অবজেক্টটিকে আউটপুট হিসাবে দেখছি, তবে আমি কীভাবে এটি একটি সাধারণ মানের রূপান্তর করব
ওয়ার্ন আনচেটা

1
এটি কখনও খুব মৌলিক নয় , আবার প্রশ্নটি দেখুন। তিনি যদি পৃষ্ঠাটি দেখতে পাতেন বা এর বিষয়বস্তুটি জানা থাকতেন তবে তিনি সম্ভবত প্রশ্নটি জিজ্ঞাসা করতেন না =)
ডেভিড বলেছেন মনিকা

1
আসল সমস্যাটির দিকে ইঙ্গিত করে একটি ভাল সূচনা পয়েন্ট পিস অ্যান্ড লাভ;) হতে পারে
মোরো

5

আমি আপনাকে উল্লেখ করতে চাই যে .val () বর্তমান নির্বাচিত মানটি নির্বাচন করতে বাছাইকারীদের সাথেও কাজ করে।


0

চেষ্টা

subtotal.value= 5 // some value

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