0

これはばかげた質問かもしれませんが、私はここで初心者です..

asp.net でフォームを作成しました。画像ボタンをクリックすると、すべてのフィールドが検証コントロールを使用して検証されます。正常に動作しています。その後、ボタンにイベントを追加します。これがそのボタンのコードです。

<asp:ImageButton ID="Submit" runat="server" OnClick="submit_Clicked" ValidationGroup="AddSchoolValidationGroup" CausesValidation="true" ImageUrl="~/Styles/images/submit-btn.png" OnClientClick="submitClicked" />

そのイベントの目的は、フォーム内のすべての値をデータベースに送信することです。ここで私の問題は、 onClick イベントをボタンに追加した後、検証が行われていないことです。フォームが検証されたときにのみこれらの onClick イベントを発生させたい成功した.誰でも私を導くことができます..事前に感謝します.

4

4 に答える 4

2

すべての検証コントロールに同じ検証グループを使用していることを確認してください。さらに、イベントを使用OnClientClickして検証を呼び出すことができます。

<asp:ImageButton ID="Submit" runat="server" OnClick="submit_Clicked" ValidationGroup="AddSchoolValidationGroup" CausesValidation="true" ImageUrl="~/Styles/images/submit-btn.png"  OnClientClick="return Page_ClientValidate('AddSchoolValidationGroup');"  />
于 2012-12-27T06:48:57.293 に答える
1

JavaScript関数を使用できます

    function validateForm() {
        if (document.getElementById('txtName').value == '') 
         { 
             ValidatorEnable(document.getElementById("rfvName"), true) // rfvName is id of validator
               return false; }
    }

画像ボタンのクライアントクリックでその関数を呼び出します

   <asp:ImageButton ID="Submit" runat="server" OnClientClick="validateForm();" OnClick="submit_Clicked" ValidationGroup="AddSchoolValidationGroup" CausesValidation="true" ImageUrl="~/Styles/images/submit-btn.png" /> 
于 2012-12-27T06:24:20.163 に答える
1

送信する前にページを検証する必要があります。ボタンの属性を追加してください。

protected void Page_Load(object sender, EventArgs e)
{
   Submit.Attributes.Add("onclick", "javascript:if(Page_ClientValidate('AddSchoolValidationGroup')){return true;}else{return false;}");
}

onclient click にメソッド「submitClicked」があるため、Page_ClientValidate 内で同じメソッドを呼び出して、既存の「OnClientClick」プロパティを削除できます。

protected void Page_Load(object sender, EventArgs e)
{
   Submit.Attributes.Add("onclick", "javascript:if(Page_ClientValidate('AddSchoolValidationGroup')){submitClicked(); return true;}else{return false;}");
}
于 2012-12-27T06:28:03.707 に答える
0

OnClientClick="submitClicked"と置き換えますOnClientClick="return submitClicked();"

function submitClicked()
{
    if (document.getElementById('txtname') != '') {
        return true;
    }
    else {
        alert('Please Enter Name');
        return false;
    }
}

したがって、すべての検証が検証されるまで、サーバー側のイベントは呼び出されません。

于 2012-12-27T06:16:47.263 に答える