2009-09-03 8 views
0

私は、ボタンをクリックしてユーザー情報を保存してからページをリダイレクトするWebページに取り組んでいます。JavaScriptに関するよくある質問asp.net c#

ただし、コントロールの1つに値を入力するのを忘れた場合、ユーザーに警告する必要があります。 エラーを修正して保存ボタンをもう一度クリックするように頼んでください。

confirmboxで同様の機能を実装しましたが、アラートボックスに戻り値がないため、このような実装が可能かどうか疑問に思っていましたか?

答えて

1

サーバー側

<asp:Button ID="MyButton" runat="server" OnClientClick="return myFunction();" OnClick="MyButton_Click" Text="Save" /> 

クライアント側

function myFunction() { 
    if (document.getElementById("<%=this.MyFieldName.ClientID%>").value.length == 0) { 
     alert('Please fill in the field.'); 
     return false; 
    } 

    return true; 
} 
+0

ありがとうございます。何らかの理由でコードが私のWebページで動作していません。 javascriptコードはどこに置かれるべきですか?マスターページまたはボタンがあるページ –

+0

ボタンがあるページに配置します。 – ChaosPandion

+0

もう一度おねがいします...何らかの理由でdoc.getbyidが要素の実名を処理していないため、ctl00 $ ContentPlaceHolder1を追加してランタイム名に変更する必要がありました –

0

私はあなたの戻り値を必要とは思いません。あなたの関数はfalseを返すだけでボタンの投稿を取り消すことができます。 RequiredFieldValidatorタグとASP.Netの検証ロジックがあなたのために求めるすべてのチェックと、ユーザの操作を行いましょう:あなたはまた、ASPを使用することができます

function myBtnClick() 
{ 
    if (document.getElementById("myTextBox").value == "") 
    { 
     alert("You forgot to fill it in!"); 
     return false; 
    } 

    return true; 
} 
1

+0

真ですが、独自の関数を設定すると、何がどのように起こるかを完全に制御できます。 – ChaosPandion

0

またはあなたが質問にアラートボックス内のテキストを変更し、代わりに確認ボックスを使用することができます。

if (document.getElementById('myTextBox').value == "") 
{ 
    return confirm('Are you sure you want to exit without filling in ... ?'); 
} 
1

代わりに、標準的なASPを再利用しようと、カスタムのJavaScriptと警告ボックスを検証するために行くの。ネット検証コントロール。必要なフィールド、比較バリデーター、カスタムバリデーターなどに利用できるものがあります。利点は、標準メカニズムを使用し、サーバー側とクライアント側の検証を行うためにアクセスできることです。サーバー側の検証は、ユーザーがブラウザでJavaScriptを無効にしてもまだ起こっているように見える場合に重要です。

さらに、私は実際には、ページ上で直接起こり、アラートボックスではないことを好んでいます(これは何とか古いことです)。警告ボックスは、彼が絶えずそれをクリックしなければならないのでユーザーエクスペリエンスを低下させ、さらに何が起こったのかを読まなければならないが、エラーがそのソースの真下に表示されれば、見やすくなる(ユーザビリティの観点から)。

また、jQueryの検証メカニズムを見ることもできます。私が知っている限り、それが存在します。

関連する問題