कैसे jquery में टेक्स्टबॉक्स मान सेट करें


107

मैं jquery का उपयोग करके टेक्स्टबॉक्स में एक निश्चित मूल्य को कैसे ठीक से लोड कर सकता हूं? नीचे एक की कोशिश की, लेकिन मुझे [object Object]आउटपुट के रूप में मिलता है । कृपया मुझे इस पर प्रकाश डालें, मैं jquery में नया हूँ।

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>


क्या है? यह कहां घोषित किया गया है? ऐसा लगता है कि आप किसी वस्तु को उस मूल्य के रूप में लोड करने की कोशिश कर रहे हैं जब आपको शायद उस वस्तु से एक संपत्ति की आवश्यकता होती
है-

क्षमा करें, st3 = $ ('# सबटोटल') सेट करना भूल गया। लोड ('compz.phch; prodid =' + x + '& qbuys =' + y)
वर्न एचेता

जवाबों:


170

मुझे लगता है कि आप 'compz.php?prodid=' + x + '&qbuys=' + yटेक्स्ट बॉक्स के मूल्य के रूप में URL पर कॉल की प्रतिक्रिया सेट करना चाहते हैं ? यदि हां, तो आपको कुछ करना होगा:

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

संदर्भ: get()

आपके कोड में दो त्रुटियां हैं:

  • load()कहते हैं एचटीएमएल निर्दिष्ट तत्व में अजाक्स से लौटे:

    सर्वर से डेटा लोड करें और रिटर्न किए गए HTML को मिलान किए गए तत्व में रखें।

    आप उस विधि के साथ एक टेक्स्टबॉक्स का मान निर्धारित नहीं कर सकते।

  • $(selector).load()एक jQuery वस्तु देता है । डिफ़ॉल्ट रूप से एक वस्तु [object Object]को स्ट्रिंग के रूप में माना जाता है।

आगे स्पष्टीकरण :

अपना URL रिटर्न मानते हुए 5

यदि आपका HTML दिखता है:

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

तब का परिणाम है

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

होगा

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

लेकिन आपके कोड में, आपके पास एक इनपुट तत्व है। सैद्धांतिक रूप से (यह मान्य HTML नहीं है और आपके द्वारा देखे गए अनुसार काम नहीं करता है), एक बराबर कॉल का परिणाम होगा

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

लेकिन आपको वास्तव में जरूरत है

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

इसलिए, आप उपयोग नहीं कर सकते load()। आपको दूसरी विधि का उपयोग करना होगा, प्रतिक्रिया प्राप्त करना होगा और इसे स्वयं मूल्य के रूप में सेट करना होगा।


क्या यह वास्तव में और अधिक कठिन है अगर मैं बस बदलना चाहता हूं जहां परिणाम लोड हो रहा है? जब मैं इसे div में लोड करता हूं तो मेरा कोड ऊपर कार्यशील होता है।
वर्न एचेता

1
@ इयासू सावदा: ठीक है, वर्तमान में आप एक जावास्क्रिप्ट ऑब्जेक्ट पास कर रहे हैं $('#subtotal').val(str3);क्योंकि load()यह काम नहीं करता है जैसा आपने सोचा था कि यह काम करता है। हां, आप load()टेक्स्ट या HTML को लोड करने के लिए उपयोग कर सकते हैं divलेकिन टेक्स्टबॉक्स मान के रूप में नहीं।
फेलिक्स क्लिंग

@ इयासु सवादा: आगे स्पष्टीकरण के लिए मेरा अपडेट देखें, आशा है कि यह मदद करेगा!
फेलिक्स क्लिंग

एक आखिरी सवाल? मैं आउटपुट पर वास्तविक परिणाम से पहले रिक्त स्थान क्यों प्राप्त करता हूं? क्या उन्हें jquery में स्ट्रिप करना संभव है, मूल रूप से compz.php में बेहतर पठनीयता के लिए बहुत सारे व्हाट्सएप शामिल हैं और उन व्हाट्सएप को वास्तव में परिणाम के साथ आउटपुट किया जा रहा है
वेर्न एनचेता

@ इयासू सावदा: आप सामान्य जावास्क्रिप्ट कार्यों का उपयोग कर सकते हैं, उदाहरण के लिए प्रतिगामी अभिव्यक्ति:data = data.replace(/\s+/, '');
फेलिक्स क्लिंग

56

ध्यान दें कि .valueविशेषता एक जावास्क्रिप्ट सुविधा है। यदि आप jQuery का उपयोग करना चाहते हैं, तो उपयोग करें:

$('#pid').val()

मान प्राप्त करने के लिए, और:

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

इसे सेट करने के लिए।

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

आपके दूसरे मुद्दे के बारे में, मैंने कभी भी loadविधि का उपयोग करके स्वचालित रूप से HTML मान सेट करने का प्रयास नहीं किया है। यकीन के लिए, आप इस तरह से कुछ कर सकते हैं:

$('#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 नंबर के उत्पाद की गणना करता है। मैं उस भाग का अनुमान लगाता हूं जो गणना किए गए मूल्यों को लोड करता है: $ ('# सबटोटल')। लोड ('compz.php; प्रचंड =' + x + '& qbuys =' + y) वस्तु के रूप में व्यवहार किया जा रहा है, इसीलिए मैं ऑब्जेक्ट ऑब्जेक्ट को आउटपुट के रूप में देखता हूं, फिर मैं इसे एक सामान्य मूल्य में कैसे परिवर्तित करूं
वर्न एचेता

1
यह कभी भी बुनियादी नहीं है , प्रश्न को फिर से देखें। यदि वह पृष्ठ देखता है, या इसकी सामग्री को जानता है, तो उसने शायद सवाल नहीं पूछा होगा =)
डेविड कहते हैं, मोनिका

1
वास्तविक समस्या को इंगित करना एक अच्छा प्रारंभिक बिंदु होगा शांति और प्रेम;)
मौरो

5

मैं आपको यह बताना चाहता हूं कि .val () वर्तमान चयनित मूल्य का चयन करने के लिए चयन के साथ भी काम करता है।


0

प्रयत्न

subtotal.value= 5 // some value

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.