मुझे एक समस्या का सामना करना पड़ रहा है जहां एक सरणी की व्याख्या करते समय फ़ायरफ़ॉक्स और क्रोम अलग-अलग व्यवहार करते हैं। सरणी एक चुनिंदा तत्व से उत्पन्न होती है जिसमें कई विकल्प हो सकते हैं।

var asset = {};

var fCategories = []; //List of category values
$('#selectCategory option:selected').each(function() {
  fCategories.push($(this).val());
});
if (fCategories.length === 1 && fCategories[0] != "null") {
  asset.Asset_Category_id = fCategories[0];
}
if (fCategories.length > 1) {
  asset.category_list = fCategories.join(",");
}


console.log(asset);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="selectCategory" multiple="multiple">
  <option value="null">Filter Category</option>
  <option selected value="3">Arc Welder</option>
  <option selected value="4">Bench Grinder.</option>
  <option value="41">cables</option>
</select>

परिणामी एसेट श्रेणी आईडी या श्रेणी सूची का उपयोग किसी वेब सेवा को कॉल में पैरामीटर के रूप में किया जाता है। नीचे दिए गए परिणाम चयनित एकल विकल्प के लिए और चयनित दो विकल्पों के लिए हैं।

फ़ायरफ़ॉक्स देता है: details: {"Asset_Category_id":"4"} या details: {"category_list":"3,4"}

क्रोम देता है: details: {"Asset_Category_id":["3"]} या details: {"Asset_Category_id":["3","4"]}

जो सही नहीं है।

ब्राउज़र संस्करण फ़ायरफ़ॉक्स 70.0.1 (64-बिट) क्रोम संस्करण 78.0.3904.97 (आधिकारिक बिल्ड) (64-बिट) हैं

मैंने कोड के साथ एक समस्या का पता लगाने की उम्मीद की थी क्योंकि मैंने इसे टाइप किया था, लेकिन कोई भाग्य नहीं, इसलिए मैं वास्तव में स्टैक ओवरफ्लो समुदाय के इनपुट की सराहना करता हूं।

0
Vince Hall 29 नवम्बर 2019, 16:15

1 उत्तर

सबसे बढ़िया उत्तर

मैंने इसे हल कर लिया है। मुद्दा यह था कि क्रोम जावास्क्रिप्ट कोड के पुराने संस्करण को कैशिंग कर रहा था। एक नियमित क्रोम उपयोगकर्ता नहीं होने के कारण, मैं इस बात से अनजान था कि f5 रिफ्रेश भी कोड को पुनः लोड नहीं करता है।

0
Vince Hall 29 नवम्बर 2019, 17:27