コメントをするときパスワードの入力を忘れると投稿者が編集/削除することができなくなって困っていました。
それで送信する前に、入力チェックすることで、必要な項目を必須項目化することができます。
スクリプトは↓を元にfc2blog向けに調整しました。
必須項目入力チェック@PHP & JavaScript Room
■スクリプト
テンプレートに追加します。固定リンク(個別記事)画面、コメント編集画面だけでOKです。
/*
* 参照
* http://f32.aaa.livedoor.jp/~azusa/index.php?p=formcheck&t=js#a_chkHissu
*/
/**
* [関数名] chkHissu
* [機 能] 必須項目入力チェック
* [説 明] フォーム送信時に必須項目が全て入力されているか調べる
* [引 数]
* @param frm フォームオブジェクト
* [返り値]
* @return true(必須項目が全て入力されている場合) | false(未入力がある場合)
* 20090725 hassaku fc2コメント用に対応
*/
function chkHissu(frm){
var obj=frm.elements["mode"];
if(obj.value=="regist"){
/* 必須入力のname属性 */
var hissu=Array("comment[name]","comment[pass]","comment[body]");
/* アラート表示用 */
var hissu_nm = Array("名前","パスワード","本文");
}else if(obj.value=="edit"){
/* 必須入力のname属性 */
var hissu=Array("edit[name]","edit[pass]","edit[body]");
/* アラート表示用 */
var hissu_nm = Array("名前","パスワード","本文");
}
/* 必須入力の数 */
var len=hissu.length;
for(i=0; i<len; i++){
var obj=frm.elements[hissu[i]];
/* テキストボックス or テキストエリアが入力されているか調べる */
if(obj.type=="text" || obj.type=="textarea" || obj.type=="password"){
if(obj.value==""){
/* 入力されていなかったらアラート表示 */
alert(hissu_nm[i]+"は必須入力項目です");
/* 未入力のエレメントにフォーカスを当てる */
frm.elements[hissu[i]].focus();
return false;
}
}else{
/* radioボタンがチェックされているか調べる */
for(var j=0, chk=0; j<obj.length; j++){
/* チェックされていたらchkフラグをプラス */
if(obj[j].checked) chk++;
}
if(chk==0){
/* 1つもチェックされていない場合はfalseを返してフォーム送信しない */
alert(hissu_nm[i]+"は必須入力項目です");
return false;
}
}
}
/* 必須入力項目が全て入力されている場合はtrueを返してフォーム送信 */
return true;
}
■htmlの変更
フォームタグへ
onsubmit="return chkHissu(this)"を追加します。
コメント・フォーム(投稿用、編集用の二箇所)
<form action="./" method="post" onsubmit="return chkHissu(this)">
...
コメント
コメントの投稿