我在 Facebook 应用程序上使用了 FBJS 的表单验证问题。我检查了文档上的验证示例,我可以使用 form.serialize(); 检查文本框值。但不幸的是,我不知道如何检查下拉列表和复选框值。
提前致谢..
我在 Facebook 应用程序上使用了 FBJS 的表单验证问题。我检查了文档上的验证示例,我可以使用 form.serialize(); 检查文本框值。但不幸的是,我不知道如何检查下拉列表和复选框值。
提前致谢..
对于复选框和单选按钮,使用如下代码:
if (document.getElementById("checkbox_or_radio_button_id_here").getChecked() == true)
{
// yes it was checked
}
对于下拉:
if (document.getElementById("dropdown_id_here").getValue() != '')
{
// yes dropdown was not empty
}
我个人不在 facebook 验证中使用序列化,我只是使用上面的简单代码。
谢谢,希望有帮助。
我发现了一种方法,虽然不是很优雅,但它很简单,并且使用 serialize() 效果很好。
我的表单代码片段:
<select name="state" id="states" class="required">
<option value=""></option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
</select>
<input value="radio1" type="radio" name="radioPicks" class="radio"/>
<input value="radio2" type="radio" name="radioPicks" class="radio"/>
<input value="radio3" type="radio" name="radioPicks" class="radio"/>
<input type="hidden" name="radioPicks" value="">
FBJS 需要让它工作:
<script type="text/javascript">
<!--
function checkForm(form) {
var params=form.serialize();
if (params.state.length>0 && params.radioPicks!="")
return true;
else
var myDialog = new Dialog(Dialog.DIALOG_POP);
myDialog.showMessage('Almost Done!', 'Please complete all fields', button_confirm='Close');
return false;
}
-->
</script>
此验证方法的关键依赖于一个空option
标签来为选定的标签值返回“”,并为单选按钮返回一个“”。我添加了一个隐藏输入并将其命名为与单选按钮相同的名称,以将其数据添加到返回的数组中。"" 值在条件中用于检查并说明这些字段是否不为空,给表单确定将信息发送到服务器。我希望这有帮助。
我也在使用简单的代码。我不知道为什么当我提交错误时,我得到了对话并且表单继续并提交。
//.... var txt ='输入邮政编码'; 函数集错误(){ var obj=document.getElementById('mapsearch'); obj.setValue(txt); obj.setStyle('颜色', '红色'); } 函数 valform(){ var obj=document.getElementById('mapsearch'); var val = obj.getValue(); if(val!='' && !isNaN(val) && val.length>2 ){ 返回真; } 别的 { 设置错误(); (new Dialog()).showMessage('需要邮编', '请输入您的邮编。'); 返回假; } } ...