2012-02-03 85 views
0

我收到確認警報以確認用戶操作。jquery簡單如果語句混淆

上單擊 「確定」,就應該做下面的代碼:

function disableSubmitButton() { 
    jQuery("#submitButton").attr("disabled", "true"); 
    jQuery("#rent_space").submit(); 
} 

「取消」,以下。

if (!confirm('Are you sure you want to proceed ?')) { 
    return false; 
} 

然而,目前我的代碼被格式化的方式,代碼的第一個塊,而不管執行其中按鈕被按下。

我認爲這幾乎只是移動代碼,但我不確定如何正確地做到這一點,因爲我的先例嘗試都失敗了。任何幫助讚賞。謝謝 !

全碼:

<script> 
    jQuery(document).ready(onDocumentReady); 
     function onDocumentReady() { 

      jQuery("#submitButton").click(disableSubmitButton); 

      jQuery('#submitButton').click(function() { 
       if (!confirm('Are you sure you want to proceed ?')) { 
        return false; 
       } 
      }); 

     } 
     function disableSubmitButton() { 
      jQuery("#submitButton").attr("disabled", "true"); 
      jQuery("#rent_space").submit(); 
     } 
</script> 
+0

什麼是#submitButton?你可以顯示標記嗎? – Vinnyq12 2012-02-03 16:30:59

回答

3

你可以試試:

//jQuery("#submitButton").click(disableSubmitButton); 

jQuery('#submitButton').click(function() { 
if (!confirm('Are you sure you want to proceed ?')) { 
    return false; 
} 
else 
{ 
    disableSubmitButton(); 
} 
}); 
1

你真的需要禁用提交按鈕?在其他點擊返回false應該就足夠了。

<script> 
    jQuery(document).ready(onDocumentReady); 
     function onDocumentReady() { 

      jQuery('#submitButton').click(function() { 
       if (!confirm('Are you sure you want to proceed ?')) { 
        return false; 
       } 
      }); 

     } 

</script> 

但是我反而綁定到提交事件:

<script> 
    jQuery(document).ready(onDocumentReady); 
     function onDocumentReady() { 

      jQuery('#rent_space').submit(function() { 
       if (!confirm('Are you sure you want to proceed ?')) { 
        return false; 
       } 
      }); 

     } 

</script> 
+0

我認爲他只有在提交表單時纔會禁用它。函數名稱並不僅僅反映了函數的作用,所以有點令人困惑。 – 2012-02-03 16:30:53

+0

+1我喜歡綁定提交更好。 – 2012-02-03 16:37:45

1

你只需要一個事件偵聽器。該條件可以在偵聽器主體中處理。

jQuery("#submitButton").click(function(e) { 
    e.preventDefault(); 
    if(confirm("...")) { 
    jQuery("#submitButton").attr("disabled", "true"); 
    jQuery("#rent_space").submit(); 
    } 
}); 

NB。您應該使用e.preventDefault()而不是return false來防止事件的默認行爲。

+0

e.preventDefault()像魅力一樣工作。謝謝 ! – JFFF 2012-02-03 17:54:28

1

Hari的回答是正確的。我更喜歡(略)更地道:

jQuery("#submitButton").click(function() { 
    if (confirm("Are you sure you want to proceed?")) { 
     disableSubmitButton(); 
    } else { 
     return false; 
    } 
}); 
0

編輯編輯我得到它的工作,感謝您的建議。謝謝。 :)

繼承人的代碼工作。

 <script> 
     jQuery(document).ready(onDocumentReady); 
      function onDocumentReady() { 

       jQuery('#submitButton').click(function() { 
        if (!confirm('Are you sure you want to proceed ?')) { 
         return false; 
        } 
        else{ 
         jQuery("#submitButton").click(disableSubmitButton); 
        } 
       }); 

      } 
      function disableSubmitButton() { 
       jQuery("#submitButton").attr("disabled", "true"); 
       jQuery("#rent_space").submit(); 
      } 
    </script> 
+0

不要這樣做:'jQuery(「#submitButton」)。click(disableSubmitButton);'。這是附加ANOTHER點擊事件,而不是調用它。您已經有該按鈕的點擊事件。我很驚訝,即使是作品 - 表單沒有被提交,是嗎? – 2012-02-03 17:57:17

+0

哎呀,你說得對。糟糕的複製意大利麪,這一行實際上是其他的。{disable} {0} {0}} disableSubmitButton(); }在我的代碼:) – JFFF 2012-02-03 17:59:43

+0

你有點接受你沒有選擇實施的答案,但沒關係:) – 2012-02-03 18:03:20