- PR -

ASP.NETで確認応答を行う

1
投稿者投稿内容
NM
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 93
投稿日時: 2003-08-28 11:10
初めて投稿します。

確認メッセージについては過去にも多数質問が上がっていますが宜しくお願いします。

Attributes.Addで、return confirmを追加してやる事はOKなのですが、Validatorコントロールをポップアップで表示する方法を取っていると確認応答でOKを選択後、エラーが有ってもポップアップが表示されません。

AUTOPOSTBACKを使えば入力単位でチェックが掛かるので問題ないのですが「戻る」ボタンで戻る時、アクションごとに戻ることになるのでボタン押下時に一括チェックを掛けています。

その時、例えば登録ボタンなどにAttributes.Addをすると確認メッセージが出て応答後にエラーチェックとなってしまいValidatorコントロールのポップアップもでないままとなります。

Validatorコントロールを先に行いエラーがなければ確認メッセージを出すと言う方法は無いものでしょうか?

以上
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2003-08-28 22:06
私はこんな方法を利用しましたが、参考になるでしょうか。

@.バリデータを通常通り配置
A.「実行」ボタンなどを配置
 (HTMLコントロールで配置した後、サーバコントロール設定にし、Submitタイプにする)
B.aspxファイルのタグに「onclick="return Javaスクリプト関数名;"」を追加
C.Javaスクリプトにて以下の記述を行う。

=======================================
//実行ボタン押下時
function Data_Submit()
{
var result;
var chk = Page_ClientValidate();

if (chk == true)
{
result = confirm("実行しますか?");
if (result == true)
{
return true;
}
}
return false;
}

※文字コードの設定を正しく行わないと文字化けする恐れがありますのでご注意を。
NM
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 93
投稿日時: 2003-08-29 00:03
申し訳ありません。折角教わったのですが使いこなせていません。

以下の様にコーディングしたのですが、肝心のエラー無し時の確認応答メッセージが表示できません。

confirm("実行しますか?")を先頭に持ってきても表示されません何がマズイのでしょうか?

<%@ Page AutoEventWireup="false" Codebehind="errdsptst.aspx.vb" Inherits="errdsptst.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<script language="javascript">
<!--
function Data_Submit()
{
var result;
var chk = Page_ClientValidate();
if (chk == true){
result = confirm("実行しますか?");
if (result == true){
return true;
}
return false;
}
}
// -->
</script>
<body>
<form runat="server" ID="Form2">
<asp:ValidationSummary runat="server" ShowMessageBox="True" ShowSummary="False" HeaderText="エラーがあります:" ID="Validationsummary1" />
氏名:
<br>
<asp:TextBox id="txtName" runat="server" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtName" Text="*" ErrorMessage="氏名" Style="FONT-WEIGHT:bold;COLOR:blue" ID="Requiredfieldvalidator1" />
<br>
住所:
<br>
<asp:TextBox id="txtAddress" runat="server" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtAddress" Text="*" ErrorMessage="住所" Style="FONT-WEIGHT:bold;COLOR:blue" ID="Requiredfieldvalidator2" />
<br>
<INPUT type="submit" value="Submit" OnClick="Data_Submit;" runat="server">
</form>
</body>
</HTML>
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2003-08-29 09:34
お疲れ様です。

ソースを拝見したところスクリプト関数呼び出しの所で括弧がないのが
原因だと思われます。

OnClick="Data_Submit();"
           ~~~~
スクリプト自体起動してないのでは。
もう一度試してみてください。
NM
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 93
投稿日時: 2003-08-29 09:42
追記

ボタンのrunat="server"を外し、type="submit"でもtype="button"でも試してみましたがJavaScriptの関数は呼ばれていないようです。

また、「Page_ClientValidate();」は唐突に現れますが何か宣言等はいらないのでしょうか?

以上
NM
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 93
投稿日時: 2003-08-29 09:45
有難う御座いました。

()を付けたら上手く行きました。

以上
NM
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 93
投稿日時: 2003-08-29 11:39
済みません。

上手く行ったと思ったのですが、Validatorのチェックでエラーメッセージが2回出てしまいます。

試しに次の様にalert("qqqqq");を入れたら、Validatorのチェックエラー、alertの文字列、そして再度、Validatorのチェックエラーが出ます。

原因または何か回避方法があれば教えていただきたいのですが宜しくお願いします。

因みに.aspx.vbが増えていますがPage_Loadのみで何もロジック的なものは無い状態です。

var chk = Page_ClientValidate();
alert("qqqqq");

以上
NM
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 93
投稿日時: 2003-08-29 13:21
済みません。解決しました。

次のData_Submit()の前に有るべきreturnが抜けていました。

<INPUT type="submit" value="Submit" OnClick="Data_Submit();" runat="server">
  ↓
<INPUT type="submit" value="Submit" OnClick="return Data_Submit();" runat="server">
1

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