我在FBJS上使用Facebook应用程序时出现了表单验证问题。我检查了文档的验证示例,我可以使用form.serialize()检查文本框值;但不幸的是,我无法弄清楚如何检查下拉列表和复选框值。
提前致谢..
答案 0 :(得分:2)
对于复选框和单选按钮,请使用以下代码:
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验证中使用序列化,我只是使用上面的简单代码。
谢谢,希望有所帮助。
答案 1 :(得分:0)
我发现了一种方法虽然不是很优雅但很简单,并且使用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
标记,以返回所选标记值的“”和单选按钮的“”。我添加了一个隐藏的输入,并将其命名为与单选按钮相同的名称,以将其数据添加到返回的数组中。在条件中使用“”值来检查并说明这些字段是否为空给表单确定将信息发送到服务器。我希望这会有所帮助。
答案 2 :(得分:0)
我也在使用简单的代码。我无法弄清楚为什么当我提交错误时,我得到对话并且表格继续并且无论如何提交。
//.... var txt ='Enter Zipcode'; function setError(){ var obj=document.getElementById('mapsearch'); obj.setValue(txt); obj.setStyle('color', 'red'); } function valform(){ var obj=document.getElementById('mapsearch'); var val = obj.getValue(); if(val!='' && !isNaN(val) && val.length>2 ){ return true; } else { setError(); (new Dialog()).showMessage('Zip Required', 'Please enter your zip code.'); return false; } } ...