2016-09-14 4 views
1

Как сравнить значения и показать результат после выбора на checkbox? Я использую jQuery, чтобы сделать это. После того, как был сделан выбор, он не будет показывать результат. Он будет отображаться только для первого щелчка. Затем, если мы снова нажмем, выход не будет изменен. Ниже мой код, написанный до сих пор,Флажок - Сравнить значения Из выбора

JQuery

$("input:checkbox").on('click', function() { 
     var $box = $(this), 
     $price = $("input[name='price_range']:checked").val(), 
     $nama_pemohon = "<?php echo $nama_pemohon; ?>", 
     $submited_id = <?php echo $submited_id; ?>, 
     $jawatan_pemohon = "<?php echo $jawatan_pemohon; ?>", 
     $jabatan_pemohon = "<?php echo $jabatan_pemohon; ?>", 
     $submited_by = <?php echo $submited_by; ?>, 
     $nama = "<?php echo $nama; ?>", 
     $jawatan = "<?php echo $jawatan; ?>", 
     $jabatan = "<?php echo $jabatan; ?>"; 

     if($price == "< RM 10,000"){ 
      $("#submited_by option").val($submited_by).text($nama); 
      $("#jawatan_pemohon").text($jawatan); 
      $("#jabatan_pemohon").text($jabatan); 
     } else { 
      $("#submited_by option").val($submited_id).text($nama_pemohon); 
      $("#jawatan_pemohon").text($jawatan_pemohon); 
      $("#jabatan_pemohon").text($jabatan_pemohon); 
     } 

}); 

HTML

<input type="checkbox" name="price_range" value="< RM 10,000" class="checker"> < RM 10,000.00 
<input type="checkbox" name="price_range" value="< RM 200,000" class="checker"> < RM 200,000.00 

<select name="submited_by" id="submited_by"> 
    <option value="<?php echo $submited_by; ?>"><?php echo $nama;?></option> 
</select> 
+0

Было бы более понятным, если бы вы заменили сегменты php на некоторые константы. – srnjak

ответ

0

Я думаю, что вы должны создать "глобальную" переменную вне вашей функции JQuery.

var clicked = false; 
$("input:checkbox").on('click', function() { 
    if(!clicked) { 
     var $box = $(this), 
     $price = $("input[name='price_range']:checked").val(), 
     $nama_pemohon = "<?php echo $nama_pemohon; ?>", 
     $submited_id = <?php echo $submited_id; ?>, 
     $jawatan_pemohon = "<?php echo $jawatan_pemohon; ?>", 
     $jabatan_pemohon = "<?php echo $jabatan_pemohon; ?>", 
     $submited_by = <?php echo $submited_by; ?>, 
     $nama = "<?php echo $nama; ?>", 
     $jawatan = "<?php echo $jawatan; ?>", 
     $jabatan = "<?php echo $jabatan; ?>"; 

     if($price == "< RM 10,000"){ 
      $("#submited_by option").val($submited_by).text($nama); 
      $("#jawatan_pemohon").text($jawatan); 
      $("#jabatan_pemohon").text($jabatan); 
     } else { 
      $("#submited_by option").val($submited_id).text($nama_pemohon); 
      $("#jawatan_pemohon").text($jawatan_pemohon); 
      $("#jabatan_pemohon").text($jabatan_pemohon); 
     } 
     clicked = true; 
    } 
}); 
+0

Спасибо @ r4phG. попробовал ваш, но все тот же. – Amran

1

Как вы можете видеть в this fiddle, вы получаете изменение на каждое нажатие на первый флажок, но только в первый раз на второй флажок.

Это из вашей логики:

if($price == "< RM 10,000"){ 
    $("#submited_by option").val($submited_by).text($nama); 
    $("#jawatan_pemohon").text($jawatan); 
    $("#jabatan_pemohon").text($jabatan); 
} else { 
    $("#submited_by option").val($submited_id).text($nama_pemohon); 
    $("#jawatan_pemohon").text($jawatan_pemohon); 
    $("#jabatan_pemohon").text($jabatan_pemohon); 
} 

Пример: с

  1. нажмите на первом флажке -> изменение опции в "нам", потому что он приходит в if.
  2. нажмите на любую галочку -> вариант изменяется на «pemohon», потому что он входит в else.

Пример б:

  1. нажмите на второй флажок -> изменения опции в "pemohon", потому что он приходит в else.
  2. нажмите на второй флажок снова -> вариант не изменится, потому что он снова входит в else.
+0

Нужно ли мне менять логику или мне не хватает какой-либо функции? – Amran

+0

Зависит от того, что вы ожидаете от своего кода. Если вам нужно очистить значение при снятии флажка, вы должны установить очищенное значение внутри 'else' и установить значение для второго флажка в' else if'. Вы уверены, что флажок - правильная идея? Возможно, переключатель для вас - лучший вариант. – srnjak

+0

Если я использую, например: '$ (" input: checkbox "). – Amran