2013-11-10 3 views
3

Я использую этот HTML:Снимите галочку с флажком, если подтвердить быстрое ложное

<tr> 
    <td class="smalltext" width="100%"> 
    <label> 
     <input type="checkbox" value="1" name="guarantee" id="guarantee_check_tick" /> 
     &mdash; Tick this checkbox if you are going to give 100% satisfaction guarantee. 
    </label> 
    </td> 
</tr> 

и JQuery:

jQuery(document).ready(function($) 
{ 
    $("#guarantee_check_tick").click(function() 
    { 
     var $this = $(this); 
     if ($this.is(":checked")) 
     { 
      confirm('Are you sure you are going to provide 100% satisfaction guarantee?'); 
     } 
    }); 
}); 

Теперь то, что он делает, когда пользователь нажимает на флажок, а ПОДТВЕРЖДАЕТ (это нормально), и галочка галочка, когда пользователь нажимает кнопку «ОК», если пользователь нажимает кнопку «Отмена» (в строке подтверждения), то флажок должен оставаться без отметки. Как я могу это достичь?

Пожалуйста, помогите!

ответ

4

confirm метод возвращает логический. Проверьте, является ли оно истинным или ложным и выполняет выполнение.

Попробуйте это:

$(document).ready(function() 
{ 
    $("#guarantee_check_tick").change(function() // changed from click to change 
    { 
     var $this = $(this); 
     if ($this.is(":checked")) 
     { 
      if(confirm('Are you sure you are going to provide 100% satisfaction guarantee?') == true){ 
       //your code 
      } 
      else{ 
       $this.removeAttr("checked"); 
      } 
     } 
    }); 
}); 

Fiddle here.

+0

Благодаря Hiral, это прекрасно! Я принимаю ваш ответ через 5 минут, потому что система здесь не позволяет мне принимать atm. Благодарим вас за ваше время. – user2854563

+0

@ user2854563 добро пожаловать :) – Hiral

2

Работа демоhttp://jsfiddle.net/88LHL/

Doc: https://developer.mozilla.org/en-US/docs/Web/API/Window.confirm

Это будет соответствовать вашим потребностям :)

Код

jQuery(document).ready(function ($) { 
    $("#guarantee_check_tick").click(function() { 
     var success = false; 
     var $this = $(this); 
     if ($this.is(":checked")) { 
      success = confirm('Are you sure you are going to provide 100% satisfaction guarantee?'); 
     } 


     if (success == true) { 
      alert('Changed'); 

      // do something     
     } else { 

      alert('Not changed'); 
      $this.prop('checked', !$this.prop('checked')); 
      // Cancel the change event and keep the selected element 
     } 

    }); 
}); 
+0

Спасибо tats_innit – user2854563

+0

@ user2854563 Не стоит беспокоиться ':)' Рад, что это вам помогло! –

2

Вы можете попробовать это,

jQuery(document).ready(function($) 
    { 
     $("#guarantee_check_tick").click(function() 
     { 
      var $this = $(this); 
      if ($this.is(":checked")) 
      { 
       var r = confirm('Are you sure you are going to provide 100% satisfaction guarantee?'); 
        // r value is either true or false 

       if(!r){ 
        $this.attr('checked', false); 
       } 
      } 
     }); 
    }); 
+0

Спасибо, Чинну Р, ты тоже. – user2854563

Смежные вопросы