- - PR -
Validatorでのhtml:javascript使用について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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必須選択というもの | ||||
|
投稿日時: 2006-05-27 21:57
そういう仕様だからです。 "validwhen"と"javascript"あたりでググってみましょう。 | ||||
|
投稿日時: 2006-05-29 11:15
ハツキタツミさん
返答ありがとうございました そうですか・・・仕様なんですね 調べが甘かったです。ありがとうございました それでは別の方法何かありませんでしょうか? やりたい事はDBの内容を表示し変更をかけたいのです その時に入力チェックと入力した内容で確認画面を表示する。 その後OKであれば変更をし、やり直すなら入力画面に戻る。 戻った時にはDBの内容ではなく、入力した内容を表示させたい。 エラー内容はどういった形でも分かるように出せさえすれば構いませんので 入力した内容が元に戻らなければいいです。 現在行っている手法は 変更画面へ行く前の画面でDBの内容をセットし request.getSession().setAttribute("regist",mem); 変更画面のjspでは <html:text name="regist" property="id"/> で表示させています。 どうぞよろしくお願いします | ||||
|
投稿日時: 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; } } | ||||
|
投稿日時: 2006-05-29 21:06
自前のJavascriptとStrutsのValidatorが生成した
Javascriptは共存できますよ。
上記のような感じです。 InpCheck()にはvalidwhenでやろうとしていた事だけを実装すればいいです。 | ||||
|
投稿日時: 2006-05-30 10:44
Java僧さん、ご返答ありがとうございます
早速試してみたら共存できました!ありがとうございます タイトルとは別になりますが Validatorで実現できなかったチェックをValidateで実現させたのですが それを警告ダイアログに表示させたいのです 具体的にはファイルアップロードで選択したデータの MIMEtypeのチェックとサイズのチェックです Validateだと遷移先の画面に表示させるようになるかと思うので できればJSP内のチェックロジックで行いたいのです その方法がどうにも分からないので お分かりの方、引き続きどうぞよろしくお願いします |
1