2015-07-28 89 views
0

例如,我有4個單選按鈕,只有1個按鈕必須選中。如何驗證單選按鈕組SimpleSchema

<label class="radio-inline"> 
    <input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="Programming"> Programming 
</label> 
<label class="radio-inline"> 
    <input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="Design"> Design 
</label> 
<label class="radio-inline"> 
    <input type="radio" name="inlineRadioOptions" id="inlineRadio3" value="Finance"> Finance 
</label> 
<label class="radio-inline"> 
    <input type="radio" name="inlineRadioOptions" id="inlineRadio4" value="Finance"> Other Category 
</label> 

而且我用簡單的模式來驗證值,但在文檔中我不能找到如何驗證單選按鈕,也許任何人都可以幫我嗎?

或者我必須這樣做簡單的內部消除模式?

回答

0

您驗證的值,就像你使用一個普通的輸入框。不同之處在於,您必須驗證選中的單選按鈕的值。

因此,例如,你有這樣對你的HTML:

<input type="radio" name="foobar" class="fetch_value" value="foo" checked> Foo<br> 
<input type="radio" name="foobar" class="fetch_value" value="bar"> Bar<br> 

而且你有這樣對您的JS:

var fetched_values = document.getElementsByClassName("fetch_value"); 
for (var i=0; i< fetched_values.length; i++) { 
    if (fetched_values[i].checked == true) { 
     validate ("field_name", fetched_values[i].value); 
    } 
} 

(...) 

function validate (id, value) { 
    //Schemas.mySchema is the Schema name & myContext is a context of your choice 
    var SchemaLink = Schemas.mySchema.namedContext("myContext"); 
    temp_obj = {}; 
    temp_obj[id] = value; 
    var isValid = SchemaLink.validateOne(temp_obj, id); 
    if (!isValid) { 
     // invalidKeys is an array, even if you validate just one object 
     var error = SchemaLink.invalidKeys(); 
     alert (Schema_link.keyErrorMessage(error[0].name)); 
    } 
} 

這應該做驗證客戶端,做服務器端,你可以插入代碼之前使用非常相似的代碼(或使用Collection2包,它會驗證使用SimpleSchema每次插入/更新)

+0

$(「輸入[名稱=名稱]:勾選」)VAL() - 這更快,但是對於Sim來說ple Schema,如何在其中進行驗證 –

+0

我用一個驗證示例更新了我的答案。 – CyberClaw

+0

大量的代碼,但有幫助的,但如果我用這個1) \t $( 「輸入[名稱=名稱]:檢查」。)VAL(),2)簡單的JS驗證'如果當時else',? –