2016-11-17 4 views
0

Ich habe 2 Checkboxen. Wenn 1 ausgewählt ist, ist der andere deaktiviert. Ich habe JS verwendet, um dies zu erreichen, und es funktioniert gut. Aber wenn ich auf Speichern klicke, wird die Option, die nicht markiert ist, nicht gespeichert. Wenn ich das Kontrollkästchen mit einem Mausklick deaktiviere, wird es gespeichert. Was ist der beste Weg, die obige Situation zu erreichen?WordPress Customizer API - Zweite Checkbox, wenn zuerst ausgewählt: Nicht speichern

PHP Aktion und JS, die ich benutze:

add_action('customize_controls_print_footer_scripts', 'my_customizer_custom_scripts'); 

function my_customizer_custom_scripts() { ?> 
<script type="text/javascript"> 
jQuery(document).ready(function() { 
    /* This one shows/hides the an option when a checkbox is clicked. */ 
    jQuery('#customize-control-checkbox1 input').click(function() { 
     if (jQuery('#customize-control-checkbox2 input:checked').val() !== undefined) { 
      jQuery('#customize-control-checkbox2 input').attr('checked', false); 
     } 
    }); 

    jQuery('#customize-control-checkbox2 input').click(function() { 
     if (jQuery('#customize-control-checkbox1 input:checked').val() !== undefined) { 
      jQuery('#customize-control-checkbox1 input').attr('checked', false); 
     } 
    }); 
}); 
</script> 

<?php 
} 

Antwort

0

es herausgefunden haben, trigger('click') anstelle des attr('checked', false) zu verwenden.

So

jQuery('#customize-control-checkbox1 input').attr('checked', false); 

Wird

jQuery('#customize-control-checkbox1 input').trigger('click'); 
Verwandte Themen