- PR -

Validatorでのhtml:javascript使用について

1
投稿者投稿内容
まめ大福初心者
会議室デビュー日: 2006/05/19
投稿数: 9
投稿日時: 2006-05-27 19:29
strutsのValidator機能を利用し入力のチェックを行っています
その時エラー内容をJavaScriptを生成し表示したいのですが
validwhenで引っかかったものだけ表示することが出来ません
(requiredは表示できました)
なぜできないのでしょうか?文法に誤りがあるのでしょうか?

ちなみにJavaScriptを使用せず別のjspに
<html:messages id="msg" message="false">
を使用して表示させる事はできましたが、別jspに表示させると
onclick="history.back();"
を使用して入力画面に戻った時入力した内容が戻ってしまう為使用を避けたい
(内容が戻らない方法があれば、それでも構いません)

どうぞよろしくお願いします。

** validation.xml **
<form name="ValiForm">
<field property="pariticipate" depends="validwhen">
<arg0 key="Participate" resource="false"/>
<var>
<var-name>test</var-name>
<var-value>
((interested==0) or ((interested==1) and (pariticipate >0)))
</var-value>
</var>
</field>
</form>

** vali.jsp **
<html:javascript formName="ValiForm"/>
<html:form action="/Vali" onsubmit="return validateValiForm(this);">
<html:radio name="regist" property="interested" value="1" />Yes!
<html:radio name="regist" property="interested" value="0" />No
<html:radio name="regist" property="pariticipate" value="1" />Midmorning
<html:radio name="regist" property="pariticipate" value="2" />Afternoon
</html:form>

** ValiForm.java **
public class ValiForm extends ValidatorForm {

}

↑interested=1の時pariticipate必須選択というもの
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2006-05-27 21:57
引用:

まめ大福初心者さんの書き込み (2006-05-27 19:29) より:
strutsのValidator機能を利用し入力のチェックを行っています
その時エラー内容をJavaScriptを生成し表示したいのですが
validwhenで引っかかったものだけ表示することが出来ません
(requiredは表示できました)
なぜできないのでしょうか?文法に誤りがあるのでしょうか?


そういう仕様だからです。
"validwhen"と"javascript"あたりでググってみましょう。
まめ大福初心者
会議室デビュー日: 2006/05/19
投稿数: 9
投稿日時: 2006-05-29 11:15
ハツキタツミさん
返答ありがとうございました

そうですか・・・仕様なんですね
調べが甘かったです。ありがとうございました

それでは別の方法何かありませんでしょうか?
やりたい事はDBの内容を表示し変更をかけたいのです
その時に入力チェックと入力した内容で確認画面を表示する。
その後OKであれば変更をし、やり直すなら入力画面に戻る。
戻った時にはDBの内容ではなく、入力した内容を表示させたい。
エラー内容はどういった形でも分かるように出せさえすれば構いませんので
入力した内容が元に戻らなければいいです。

現在行っている手法は
変更画面へ行く前の画面でDBの内容をセットし
request.getSession().setAttribute("regist",mem);
変更画面のjspでは
<html:text name="regist" property="id"/>
で表示させています。

どうぞよろしくお願いします
まめ大福初心者
会議室デビュー日: 2006/05/19
投稿数: 9
投稿日時: 2006-05-29 17:17
スレ主です

その後手法を変え、
入力を行うJSP内にチェック用のjavascriptを組み
alertでエラーメッセージを表示するようにしました
しかしまた一つ問題が

ファイルのアップロードを行うため、対象データの選択を行うのですが
それを画像のみにしぼりたいのです。
選択時には絞れなかったので、以前はvalidateでContentTypeを取得し
対象外のものはエラーを出すようにしました。
が、JSPで組む時にContentTypeを取得する方法が分かりません。
それとサイズを1M以下に限定したいので
その情報を取得する方法もよろしくお願いします

<%@ page import="org.apache.commons.fileupload.DeferredFileOutputStream"%>

<SCRIPT type="text/javascript" language="JavaScript">
<!--
function InpCheck(){
var msg="";
var ct="";
//photo
if (document.BuyersGuideForm.photo[0].checked){
if(document.BuyersGuideForm.url_file.value==""){
if((document.BuyersGuideForm.photourl.value=="")){
msg = msg + "Photourl is required"+ "\\r"+"\\n";
}
}else{
ct=document.BuyersGuideForm.url_file.getContentType();
msg = msg + ct + "\\r"+"\\n";
}
}
if(msg==""){
return true;
}else{
alert(msg);
return false;
}
}
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2006-05-29 21:06
自前のJavascriptとStrutsのValidatorが生成した
Javascriptは共存できますよ。
コード:
<html:javascript formName="ValiForm"/>
<html:form action="/Vali" onsubmit="return validateValiForm(this) && InpCheck();">


上記のような感じです。
InpCheck()にはvalidwhenでやろうとしていた事だけを実装すればいいです。
まめ大福初心者
会議室デビュー日: 2006/05/19
投稿数: 9
投稿日時: 2006-05-30 10:44
Java僧さん、ご返答ありがとうございます
早速試してみたら共存できました!ありがとうございます

タイトルとは別になりますが
Validatorで実現できなかったチェックをValidateで実現させたのですが
それを警告ダイアログに表示させたいのです
具体的にはファイルアップロードで選択したデータの
MIMEtypeのチェックとサイズのチェックです
Validateだと遷移先の画面に表示させるようになるかと思うので
できればJSP内のチェックロジックで行いたいのです
その方法がどうにも分からないので
お分かりの方、引き続きどうぞよろしくお願いします
1

スキルアップ/キャリアアップ(JOB@IT)