2009-04-09 47 views
0

我有兩個單選按鈕,像這樣如何做一個JavaScript確認對話框,如果一個單選按鈕被選中,與jQuery

<input type="radio" name="rush" value="yes" /> 
<input type="radio" name="rush" value="no" checked="checked" /> 

我想要做的就是當表單點擊提交按鈕,檢查「是'被選中。

如果是,則顯示一個JavaScript確認對話框

到目前爲止,我已經得到了這一點,但我堅持,任何幫助,將不勝感激。

$("form.shipping").submit(function() { 

    if($("input[name='rush']".attr("value") === "yes") 
    { 
     if (confirm("Rush orders are subject to an upcharge. (Just wanted to make sure you read the note). Is this ok?")) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 

}); 
+0

這些變化現在還沒有工作? – 2009-04-09 20:31:31

+0

是與上面的代碼我仍然沒有得到確認,無賴 – mjr 2009-04-09 20:34:12

回答

5

您正在約束某個按鈕的事件click。您可能想要將其綁定到表單的submit事件。除此之外,你在選擇器中拼寫錯誤input.sumbit-button

編輯Here是你想要的工作版本。你的錯誤是:

  • 你可能不是圍繞着document.ready包裝你的代碼。如果您的腳本包含在頁面的頂部,這一點非常重要,因爲您編寫的任何未包含在此事件中的內容都將在創建DOM元素之前執行。所以你會將事件綁定到無所事事。只要DOM完全加載,事件就會通過觸發來處理。
  • .attr前右側有失蹤關閉)。你或許應該考慮像FireBug工具來調試你的JavaScript,因爲它是瑣碎找到這些類的東西吧。
  • 你被檢查的單選按鈕的值,但它總爲真,因爲你需要過濾出來只獲取:checked之一。

因此,工作代碼:

$(document).ready(function() { 
    $("form.shipping").submit(function() { 
     if($("input[name='rush']").is(":checked")) { 
      return confirm("Rush orders are subject to an upcharge. 
      (Just wanted to make sure you read the note). Is this ok?"); 
     } 
    }); 
}); 
+0

問題解決了!你搖滾。 – mjr 2009-04-09 20:41:29

+0

我確實有文件準備好,但忽略了它張貼:-(我的壞 – mjr 2009-04-09 20:42:56

+0

啊。羅傑。我要離開的警告在那裏反正作爲一個警告任何人讀取此以後,很高興它的工作。只有 – 2009-04-09 20:45:47

0

是否在多個瀏覽器失敗?我已經看到IE7中的一些奇怪的錯誤報告,其中confirm()沒有在onclick或onsubmit事件處理程序中執行。

+0

在Firefox中測試此時 – mjr 2009-04-09 20:32:06

0

您選擇「輸入[名稱=‘搶’]」將返回兩個輸入端,你需要「輸入[名稱=‘搶’]:勾選」爲保羅Bergantino建議

相關問題