2010-04-15 157 views
1

我正在做新聞訂閱。我有2radio按鈕 - 訂閱和unsubscibe和一個提交按鈕。但是當我點擊提交按鈕,ajax函數被調用subscription.Now我想做驗證。已經寫了單選按鈕JavaScript驗證如下:單選按鈕的Javascript驗證

function validate_radio() 
       { 
        var radio_choice = false; 
        var radio_val = document.newsletterform.subscribe.length; 
        for (counter = 0; counter < radio_val; counter++) 
        { 
         if (document.newsletterform.subscribe[counter].checked) 
         radio_choice = true; 
        } 
        if (!radio_choice) 
        { 
         document.getElementById("mandatory").innerHTML="Select Subscribe/Unsubscribe"; 
         return false; 
        } 

       } 

但現在我得到了驗證消息,但同時我得到認購。 告訴我一個方法,這樣我可以停止訂閱正在完成,如果函數返回false。 我打電話的功能如下:

+0

你是怎麼調用這個函數的? – SLaks 2010-04-15 13:42:29

+1

你有沒有一個很好的理由,爲什麼不使用其中一個優秀的圖書館(嗯,... mootools ...),並使用他們的預建機械裝置只是爲了那個? – 2010-04-15 13:42:44

+1

因爲拖拽一個巨大的框架庫來檢查兩個單選按鈕的'.checked'屬性是完全瘋狂的?只是一個想法。 – bobince 2010-04-15 13:53:07

回答

0

對於什麼是值得的,我認爲它不適合用於包含單選按鈕的窗體。年輕人不記得舊的收音機,或者因爲弄亂按鈕而大吼大叫,讓他們都彈出來。單選按鈕被稱爲「單選按鈕」,因爲其中之一必須始終被選中。您的用戶將按鈕初始化爲良好的默認設置會更友好。

+0

我完全沒有做過這種連接......我記得「欺騙」收音機打破,總是很有趣:D你的帖子讓我大聲笑:) – Jeriko 2010-04-15 14:54:16

5

聽起來像你的表單不應該停止時,它應該是。我假設你有類似

<form onsubmit="validate_radio()">...</form> 

由於您的validate_radio()函數返回失敗假的,你只需要修改你的表單,如果驗證確實失敗:

<form onsubmit="return validate_radio()">...</form> 

這樣的形式將暫停如果驗證失敗。

+0

大聲笑,+1我的答案(幾秒鐘後)幾乎*相同*。 – 2010-04-15 13:46:56

+3

@OP:我的回答有一件事情,那不是:爲什麼不預先選擇一個按鈕?然後你就會知道總有一個被選中,不需要驗證...... – 2010-04-15 13:47:19

+0

:D我需要代表,你絕對不需要! – Jeriko 2010-04-15 13:48:51