2012-09-05 10 views
5

मुझे jQuery का उपयोग करके शिपिंग पते पर कॉपी करने के लिए बिलिंग पता प्राप्त करने में समस्या हो रही है। मैंने सादे-जेन फॉर्म का उपयोग करके इसे सफलतापूर्वक नहीं किया है जिसमें कोई कस्टम jQuery तत्व नहीं है। लेकिन जब मैं चेकबॉक्स में कस्टम यूआई जोड़ता हूं, तो ऐसा लगता है कि कोड तोड़ना है। मैंने कई कोड परिवर्तनों की कोशिश की है लेकिन उनमें से कोई भी काम नहीं कर रहा है।बिलिंग पता शिपिंग पता के समान ही jQuery

जब कोई उपयोगकर्ता "मेरा बिलिंग पता मेरे शिपिंग पते जैसा ही है" पर क्लिक करता है, तो कुछ भी नहीं हो रहा है। यहां मेरा jQuery कोड है:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#check-address').click(function(){ 
     if($('#check-address').attr('checked')){ 
      $('#address-field1').val($('#address-field').val()); 
      $('#city-field1').val($('#city-field').val()); 
      $('#zip-field1').val($('#zip-field').val()); 
      var state = $('#state-field option:selected').val(); 
      $('#state-field1 option[value=' + state + ']').attr('selected','selected'); 
     } else { 
      //Clear on uncheck 
      $('#address-field1').val(""); 
      $('#city-field1').val(""); 
      $('#zip-field1').val(""); 
      $('#state-field1 option[value=Nothing]').attr('selected','selected'); 
     }; 

    }); 
}); 
</script> 

किसी भी मदद की बहुत सराहना की जाती है!

उत्तर

4

Demo of options

$('#check-address').attr('checked') 

चाहिए हो सकता है

$('#check-address').is(':checked') 


के रूप में टिप्पणी में कहा, वहाँ त्वचा के लिए कई तरीके इस बिल्ली कर रहे हैं। http://jsfiddle.net/sRt6G/1/ this.checked सबसे सरल लगता है।

+0

यह क्यों होना चाहिए? यह अभी भी काम करेगा (हालांकि 'प्रोप (' चेक ') 'अधिक * सही * होगा। यह संभवतः' attr()' ''() 'है' (0) के उपयोग के लिए अधिक कुशल है। – Matt

+0

या यह। चेक किया गया :) –

+0

धन्यवाद आप अपने उत्तर के लिए मैंने यहां अपना कोड अपडेट किया है: rushapassport.com/Secure/Final/application-step-3b.php लेकिन यह अभी भी मेरे लिए काम नहीं कर रहा है। कोई मदद? – three3

4

आप jquery 1.7 का उपयोग कर रहे हैं। आपको attr

$('#check-address').prop('checked') 



     $(elem).attr('checked') // returned true (Boolean) prior to 1.6 
     $(elem).attr('checked') // now returns "checked" (string) versions after 1.6 
     $(elem).prop('checked') // now returns true (Boolean) versions after 1.6 
1

के बजाय प्रोप का उपयोग करना चाहिए, यह हो सकता है कि आप चेकबॉक्स के एक क्लिक ईवेंट पर जाने का प्रयास कर रहे हों। आप की कोशिश की है:

$('#check-address').on('change', function (e) {... 

और

if ($('#check-address').is(":checked").... 
5

प्लगइन आप (या जो भी यह करता है) अपने चेकबॉक्स सुंदर बनाना करने का उपयोग कर रहे हैं, एक div साथ <input type="checkbox"/> की जगह है, और पर घटनाओं अनुकरण चेकबॉक्स।

यह एक click घटना का प्रचार नहीं करता है, लेकिन यह एक change प्रचार करता है, इसलिए आपको लगता है कि बजाय के लिए सुनने चाहिए;

$('#check-address').change(/* function */); 

अपने कोड में सुधार करने के लिए आप prop('checked') साथ attr('checked') के लिए चेक स्थानापन्न करना चाह सकते हैं, लेकिन अपने कोड अभी भी परवाह किए बिना काम करेंगे। इसके लिए कारण prop() के लिए jQuery दस्तावेज़ पर उल्लिखित हैं; http://api.jquery.com/prop

+0

अरे मैट, क्या आप कृपया अपने कोड पर थोड़ा और अधिक लाभ उठाएंगे? मुझे वास्तव में इसकी प्रशंसा करनी होगी? – three3

+0

@ तीन3: आपके द्वारा दिए गए लिंक पर जाकर मुझे मुझे http://www.rushapassport.com/Secure/Final/ – Matt

+0

पर माफ़ कर दिया गया है। यह अब तय किया गया है। कृपया पुनः प्रयास करें – three3

0

आप निम्नलिखित कोड की कोशिश करना चाहते हैं हो सकता है:।। पर ("परिवर्तन", function() {

  var val1 = $("input.street").val(); 
      var val2 = $("input.suitNumber").val(); 
      var val3 = $("input.city").val(); 
      if(this.checked) 
      { 
       $("input.streetb").val(val1); 
       $("input.suitNumberb").val(val2); 
       $("input.cityb").val(val3); 
      } 

      else 
      { 
       $("input.streetb").val(""); 
       $("input.suitNumberb").val(""); 
       $("input.cityb").val(""); 
      } 

      }); 
1

यह भी मदद कर सकता है $ ("input.billingAddress")

$('input[name=city\\[' + this.value + '\\]]').val($('input[name=city\\[1\\]]').val()); 

Demo

शीर्ष पर फार्म भरें, तो फ़ील्ड के मानों की प्रतिलिपि करने के लिए चेक बॉक्स का उपयोग करें।

यह गतिशील रूप से बनाए गए फ़ील्ड के साथ काम करता है।यदि फॉर्म हार्ड-कोड किया गया है, तो फ़ील्ड की अनुक्रमणिका के साथ this.value को प्रतिस्थापित करें।

+0

समस्या चेक-राज्य के परिवर्तन पर ट्रिगर करने के साथ थी। वास्तव में डेटा की प्रतिलिपि बनाने के साथ नहीं। – jabbink

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