如何让JS等待确认模式

时间:2015-01-31 10:59:15

标签: javascript jquery html knockout.js

这可能真的很愚蠢,但我在这里没有看到任何东西,请帮帮我。

所以他们就是这个人:

<a href="javascript:void(0);" class="font-red" data-bind="text:block() ,visible: ((postUserId != AS.currentUser) && (block() == 'Block')),attr:{post: postId}, click:changeBlock"></a>

如您所见,点击 changeBlock 功能

this.changeBlock = function() {
    var flag = confirm("You sure you want to block this user ?");

        if(flag){
            blockUser(this.postId);
            if(this.block() != ""){
                this.block("Blocked");
                this.pointId(AS.currentUserDetails.name);
                return "Blocked";}
            }
    }

和某处是函数 blockUser

function blockUser(post_id) {
            var blockUser = AS.baseUrl + "blockNewUser";
            $.ajax({
                url:blockUser,
                type:"POST",
                data:{postId : post_id},
                success:function(data) {
                    // `request` seems a very strange name; perhaps `data` or `response`?
                },
                error: function(){
                    // You can't use `document.write` after the page has been parsed
                }
            });

    }

我的问题是我无法使用确认()来确认阻止或取消。 我将不得不使用在网站上使用的html模式。

如果在执行的某个时刻我添加

$('#my-modal').modal('show');

然后虽然出现了模态但是执行的其余部分没有等我选择是或否。 如果通过一些魔术我设法让JS等待选择,我怎么知道选择了什么?
我该怎么办 ?
我不能使用任何第三方模态。

这是我想要使用的模式:

<div id="block-confirm-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
    <div class="modal-dialog modal-sm">
        <div class="modal-content">
            <div class="modal-body">
                <div class="clearfix side-space">
                    <h3 class="modal-title text-center">Are you sure you want to Block this user ?</h3>
                </div>
                <form id="form-block-confirm" name="" method="post" action="" class="form-horizontal">
                    <div class="clearfix side-space">
                        <div class="clearix text-center">
                            <button type="submit" class="btn btn-saffron btn-introduce" id='block-confirm-button'>Block</button>
                            <button type="submit" class="btn btn-saffron btn-introduce" id='block-cancel-button'>Cancel</button>
                            <!--input type="submit" name="submit" class="btn btn-saffron btn-introduce" value="Post"-->
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

在这种情况下你应该做这样的事情。

在视图模型中:

    this.changeBlock = function() {
    $('#my-modal').modal('show');
    }

    function blockUser(post_id) {
    //code here
    }        

    this.Block=function(){
    blockUser(this.postId);
        if(this.block() != ""){
         this.block("Blocked");
         this.pointId(AS.currentUserDetails.name);
           return "Blocked";}
          }
    }


    this.Cancel=function(){
     $('#my-modal').modal('hide'); //hide or close what ever suits
    }

查看:

<button  id='block-confirm-button' data-bind="click:Blocked">Block</button>
<button  id='block-cancel-button' data-bind="click:Cancel">Cancel</button>

有任何问题让我们知道