例如,我有4个单选按钮,只能检查1个按钮。
<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>
我也使用Simple Schema来验证值,但是在文档中我找不到如何验证单选按钮,也许任何人都可以帮助我?
或者我必须在没有Simple Schema的情况下这样做?
答案 0 :(得分: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验证每个插入/更新)