2014-01-19 4 views
0

искал все по сети, но я не смог найти ответ на свою проблему. я решил задать здесь ответ. У меня есть код, который использует подсказку AJAX GET. Этот код работает с кнопкой. Я хочу установить флажок рядом с этой кнопкой. Если флажок не установлен, я хочу дать сообщение. Пользователь не должен продолжать, не устанавливая флажок.Ящик для проверки Javascript

Вот исходный код:

<div class="buttons"> 
    <div class="right"> 
    <a id="button-confirm" class="button"><span><?php echo $button_confirm; ?></span></a> 
    </div> 
</div> 

<script type="text/javascript"><!-- 
$('#button-confirm').bind('click', function() { 
    $.ajax({ 
     type: 'GET', 
     url: 'index.php?route=payment/bank_transfer/confirm', 
     success: function() { 
      location = '<?php echo $continue; ?>'; 
     } 
    }); 
}); 
//--></script> 

И этот код у меня есть редактирование:

<div class="buttons"> 
    <div class="right"> 
    <input type="checkbox" value="1" /><a id="button-confirm" class="button" ><span><?php echo $button_confirm; ?></span></a> 
    </div> 
    </div> 

<script type="text/javascript"><!-- 
$('#button-confirm').bind('click', function() { 
    $('#button-confirm').click(function(){ 

    var input = $('input[type=checkbox]:checked').val(); 

    if (!input){ 
     alert('Lütfen checkboxı işaretleyin!'); 
    } else { 
      } 
    $.ajax({ 
     type: 'GET', 
     url: 'index.php?route=payment/bank_transfer/confirm', 
     success: function() { 
      location = '<?php echo $continue; ?>'; 
     } 
    }); 
}); 

}); 


//--></script> 

Моя редактировать версия кода не работает. Он не отображает предупреждение, и когда я нажимаю кнопку дважды, кнопка продолжает и завершает процесс.

И я хочу показать встроенное предупреждающее сообщение, а не всплывающее предупреждающее сообщение.

Благодарим Вас за помогает теперь ...

+0

я сказал «когда я нажимаю кнопку дважды» я «Когда я нажимаю только один раз, ничего не происходит, но когда я нажимаю дважды, он работает», не имеет значения, установлен ли флажок или нет. благодаря – user3212166

ответ

1

«Это не показывает предупреждение, и когда я нажимаю на кнопку два раза кнопку продолжает и завершает процесс.»

Вы вложен вызов $('#button-confirm').click(...)внутри исходящий вызов на $('#button-confirm').bind('click'...). Это означает, что в первый раз, когда вы нажимаете единственное, что происходит, он связывает второй обработчик кликов с одним и тем же элементом. Во второй раз, когда вы нажимаете на него, выполняются оба обработчика кликов, внешняя привязка другая обработчик кликов, а внутренняя - на самом деле пытается проверить ваш флажок и сделать ajax.

Причина, по которой идет с запросом АЯКСА независимо от значения флажка, что у вас есть $.ajax() вызова после закрывающей } вашего else заявления.

Попробуйте вместо этого:

$('#button-confirm').click(function() {  
     var input = $('input[type=checkbox]:checked').val(); 

     if (!input) { 
      alert('Lütfen checkboxı işaretleyin!'); 
     } else { 
      $.ajax({ 
       type: 'GET', 
       url: 'index.php?route=payment/bank_transfer/confirm', 
       success: function() { 
        location = '<?php echo $continue; ?>'; 
       } 
      }); 
     } 
    }); 

На мой взгляд легче читать способ проверить, является ли флажок установлен следующим образом:

 if (!$('input[type=checkbox]').is(':checked')) { 
      alert('Lütfen checkboxı işaretleyin!'); 
Смежные вопросы