2015-09-16 5 views
5

मैं निम्न स्वरूप में एक वस्तु को क्रमानुसार करने jQuery के $.param() उपयोग कर रहा हूँ के साथ रिक्त स्ट्रिंग या nulls शामिल न करें

firstNm = & lastNm = एम एंड आईडी = और ईमेल =

मैं बजाय को क्या कहना चाहेंगे बस है:

lastNm = एम
0,123,

मुझे ऐसे पैरामीटर चाहिए जो आउटपुट में दिखाई देने के लिए शून्य या खाली नहीं हैं। क्या यह jQuery के $.param() का उपयोग कर संभव है, या क्या इसे कस्टम क्रमिकरण की आवश्यकता होगी?

संपादित करें:

यह this question का डुप्लिकेट नहीं है। यह प्रश्न मीडियाविकि एपीआई से अधिक संबंधित है और पैरामीटर शून्य या खाली होने पर, और केवल कुंजी मान जोड़ी की कुंजी सहित = सहित नहीं करना है। मेरा सवाल यह है कि क्या मूल्य शून्य या खाली होने पर पूरी तरह से आउटपुट से मुख्य मूल्य जोड़ी को छोड़ना संभव है।

+0

संभावित डुप्लिकेट [मूल्यों के बिना यूआरएल पैरामीटर] (http://stackoverflow.com/questions/11088184/url-parameters-without-values) –

उत्तर

4

आप अशक्त और खाली मान को बाहर करने के लिए अपने स्वयं के समारोह लिख सकते हैं:

var queryParams = { 
    firstNm: null, 
    lastNm: 'M', 
    id: null, 
    email: null 
} 

function isEmpty(value){ 
    return value == null || value == ""; 
} 

for(key in queryParams) 
    if(isEmpty(queryParams[key])) 
    delete queryParams[key]; 

// queryParams now = { lastNm: "M"} 

और यदि आप प्रपत्र से मूल्यों को प्राप्त आप निम्न कर सकते हैं:

$("#form :input[value!='']").serialize() 
+0

मुझे लगता है कि यह सबसे अच्छा समाधान है। ऐसा लगता है कि '$ .param()' विधि को तीसरे पैरामीटर को स्वीकार करना चाहिए, जैसे 'includeEmpty'। –

0

यहाँ आप बाहर कर सकते हैं शून्य मान, अपनी गुणों को अपनी ऑब्जेक्ट में रखते हुए: https://jsfiddle.net/leojavier/bxc57o3v/2/

var queryParams = { 
     firstNm: null, 
     lastNm: 'M', 
     id: null, 
     email: null 
    } 
    var query = {} 
    for(item in queryParams) { 
     if(queryParams[item] != null && queryParams[item].length > 0) { 
      query[item] = queryParams[item] 
      console.log(query) 
      console.log($.param(query)); 
     } 
    } 
+1

अच्छा विचार, लेकिन मेरे मामले में, गुणों को हटाना ठीक है, क्योंकि मैं तुरंत एक नए पृष्ठ पर रीडायरेक्ट कर रहा हूं जिसमें यूआरएल में पैरामीटर के रूप में धारावाहिक वस्तु शामिल है –

संबंधित मुद्दे