Проверка формы с помощью FBJS

У меня проблема с проверкой формы с FBJS для использования в приложении Facebook. Я проверил примеры проверки в документации и могу проверить значения текстового поля с помощью form.serialize (); но, к сожалению, я не мог понять, как проверить значения раскрывающегося списка и флажка.

Заранее спасибо..


person she hates me    schedule 10.12.2009    source источник


Ответы (3)


Для флажков и переключателей используйте такой код:

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, я просто использую простой код, как указано выше.

Спасибо, надеюсь, что это поможет.

person Sarfraz    schedule 11.12.2009

Я тоже использую простой код. Я не могу понять, почему, когда я отправляю сообщение с ошибкой, я получаю диалог, а форма все равно отправляется.


//....
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;
    }
}



...
person GoodNews    schedule 21.10.2010

Я нашел метод, который, хотя и не очень элегантен, но прост и довольно хорошо работает с использованием 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 для возврата "" для выбранного значения тега и "" для переключателей. Я добавил скрытый ввод и назвал его тем же именем, что и переключатели, чтобы добавить его данные в возвращаемый массив. значение "" используется в условном выражении, чтобы проверить и сказать, не являются ли эти поля пустыми, дать форме разрешить отправить информацию на сервер. Надеюсь, это поможет.

person The Orange Mantis    schedule 29.01.2010