使用FBJS进行表单验证

时间:2009-12-10 11:04:22

标签: javascript facebook fbjs

我在FBJS上使用Facebook应用程序时出现了表单验证问题。我检查了文档的验证示例,我可以使用form.serialize()检查文本框值;但不幸的是,我无法弄清楚如何检查下拉列表和复选框值。

提前致谢..

3 个答案:

答案 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;
    }
}



...