搜索

首页  >  问答  >  正文

javascript - 为何我的点击事件要点两次才触发!在线等,急!!!

如图:
如果没同意那个协议,点击右下角按钮,就不能发布委托,弹出对话框提示,与此同时,将按钮设置为disabled属性。(即:禁用按钮)
然后我又写了个点击事件,如果勾选了那个同意协议,让按钮恢复。
然后这个时候出现问题了,我该怎么判定事件呢,我不知道该怎么触发第二个事件将按钮改掉禁用状态了。

这个时候,我尝试写了个点击事件,就是点击这个单选框的父元素,也就是点击那一块,都可以触发,触发后,将右下角的按钮改为可以点击。

然后我发现,按钮被禁用后,我要点击两次才可以!

后来我又发现,如果我在第一步,就是不同意协议,然后弹框,然后将右下按钮disabled的时候,
我让那个协议的label为选中状态 这次只用点击一次就可以了!
然而,这样一来,意思又不对了,网站不点同意协议不能点右下角按钮,可是如果点击了按钮,网站自己把协议选中为同意状态,这不就是强制用户同意协议了?!所以,有没有老哥帮忙想想办法呀!急!!!

下边是图片和代码:
刚开始状态:

点击后状态:

下边是代码:

<p class="form-group">
    <p class="checkbox col-xs-offset-2">
        <label class="checkbox-inline">
            <input type="checkbox">
            <span class="text-danger">我已经阅读并同意</span>&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:;" class="text-primary" target="_blank">《XXXXXXX隐私保护协议》</a>
        </label>
    </p>
</p>
<br>
<p class="row">
    <input type="submit" class="btn btn-info col-xs-offset-3" value="发布专项委托">
</p>


$('.zWt_release_agree').parent().mouseup(function(){
    if($('.zWt_release_agree').attr("checked")){
        $('.zWt_release_spec').attr({"disabled":false})
    }
})
$('.zWt_release_spec').mouseup(function(){
    if(!$('.zWt_release_agree').attr("checked")){
        alert('您必须同意《花瓣儿网隐私保护协议》后,才可以发布委托!')
        $('.zWt_release_spec').attr({"disabled":true})
        $('.zWt_release_agree').attr({"checked":true})
    }
})
某草草某草草2776 天前744

全部回复(6)我来回复

  • 迷茫

    迷茫2017-05-18 11:01:32

    泻药。

    不知这是不是你想要的?

    https://jsfiddle.net/wcw5qo44/1/

    (function () {
      var $button = $("button"), $check = $("input[type=checkbox]");
      $button.on('click', function () {
          if (!$check.is(":checked")) {
            $button.prop("disabled", true);
          alert('请勾选');
        } else alert('成功');
      });
        $check.on("change", function () {
          $button.prop("disabled", !$check.is(":checked"));
      });
      
    })();

    回复
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-18 11:01:32

    同上,我看了下代码知道大致是什么意思,但是没听懂你表达的问题...

    回复
    0
  • 習慣沉默

    習慣沉默2017-05-18 11:01:32

    表达能力不行啊老哥

    你这个button的点击事件只需要绑定一个啊,在回调里面判断radio的状态,然后做不同的处理。另外绑定事件干嘛要用mouseup?

    回复
    0
  • 怪我咯

    怪我咯2017-05-18 11:01:32

    $('.zWt_release_agree').parent().mouseup(function()改成$('.zWt_release_agree').parent().click(function()就好了,你试下,还有我觉得第二个绑定事件多此一举,要是我做直接默认这个按钮为disabled,然后checkbox绑定click事件,如果选中状态disabled为false,否则为true

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-18 11:01:32

    谢邀.

    稍微捋下逻辑~

    1. 初始状态,btn是不是默认应该是disabled的?勾选后才会点亮啊。

    2. 勾选事件,表单有没有独立的表单事件可以用?jQ有没有给相关的接口?这个去查手册。

    3. 接上条,checked是否需要手动改?

    4. 布尔属性是一种固有属性,建议通过.prop()设置为false来禁止。

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 11:01:32

    能不能简单的描述,你说这么多,看着真的很费劲啊。

    回复
    0
  • 取消回复