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 検証でシリアライズを使用しません。上記の単純なコードを使用するだけです。
ありがとう、それが役立つことを願っています。
私もシンプルなコードを使用しています。エラーで送信すると、ダイアログが表示され、フォームが先に進み、とにかく送信される理由がわかりません。
//.... var txt ='郵便番号を入力'; 関数 setError(){ var obj=document.getElementById('mapsearch'); obj.setValue(txt); obj.setStyle('color', 'red'); } 関数 valform(){ var obj=document.getElementById('mapsearch'); var val = obj.getValue(); if(val!='' && !isNaN(val) && val.length>2 ){ true を返します。 } そうしないと { setError(); (new Dialog()).showMessage('郵便番号が必要です', '郵便番号を入力してください'); false を返します。 } } ...
非常にエレガントではありませんが、単純で、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
タグに依存して、選択されたタグ値に対して "" を返し、ラジオ ボタンに対して "" を返します。非表示の入力を追加し、ラジオ ボタンと同じ名前を付けて、返された配列にデータを追加しました。"" 値は条件で使用され、これらのフィールドが空でないかどうかを確認し、情報をサーバーに送信することをフォームに許可します。これが役立つことを願っています。