搜尋

首頁  >  問答  >  主體

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})
    }
})
某草草某草草2785 天前753

全部回覆(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
  • 取消回覆