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?');
        }
    });
});

ユーザーがチェックボックスをクリックすると、確認が表示され(これは問題ありません)、ユーザーが「キャンセル」ボタンをクリックすると(確認プロンプトで)、ユーザーが「OK」ボタンをクリックするとチェックボックスがオンになります。チェックボックスはオフのままにする必要があります。どうすればこれを達成できますか?

助けてください!

4

3 に答える 3

4

confirmメソッドはブール値を返します。true か false かを確認して実行します。

これを試して:

$(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");
            }
        }
    });
});

ここでフィドル。

于 2013-11-10T08:18:01.500 に答える
3

実際のデモ http://jsfiddle.net/88LHL/

ドキュメント: 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
        }

    });
});
于 2013-11-10T08:20:18.717 に答える
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);
                }
            }
        });
    });
于 2013-11-10T08:22:50.147 に答える