11

私は ASP.NET を使用していますが、ページをリロードしたくない (ポストバックしたくない) ため、クライアント側で次のことを行いたいと考えています。次の条件でユーザー入力を確認したいと思います。

  1. 2 つのラジオボタンと 2 つのテキストボックスと 1 つのボタンがあります。このようなもの: ここに画像の説明を入力
  2. テキストボックスを有効にするには、ラジオボタンをオンにする必要があります (デフォルトではテキストボックスは無効になっています)。
  3. ユーザーがラジオボタン 1 をオンにすると、textbox1 がアクティブになり、textbox2 が空になり、無効になります。ユーザーがボタンを押して、textbox1 が空の場合、message1 がアクティブになります。
  4. 2 番目のラジオボタンと textbox2 についても同様です。

編集

ボタンが入っているのにそうでは<asp:button>ない<input type="submit>ことに気付きました。そのため、サーバーで検証するためにコードビハインドが実行されます。私が間違っている場合は修正してください。<asp:button>では、サーバーに渡すことなくユーザー入力を検証するにはどうすればよいですか?

4

5 に答える 5

22

あなたが試すことができます:

<asp:button onClientClick="return validateData();">

JavaScript では次のようになります。

function validateData() {
    if (OK) {
        return true;
    } else {
        return false;
    }
}

return trueあなたのページがサーバーにポストバックされ、return falseあなたのページがそれを行うのを防ぎます。お役に立てれば。

于 2013-07-23T04:05:45.840 に答える
0

バリデーターにバリデーショングループを追加するだけでなく、バ​​リデーションをチェックするトリガーとして使用しようとしているボタンを追加しますか?

検証グループは、コツをつかめば非常に簡単に使用できます。バリデーターについてあまり詳細に掘り下げるつもりはありませんが、情報が役立つ場合は、いつでも投稿に追加できます。あなたの答えが解決されたことを願っています。

于 2014-03-20T16:32:29.383 に答える
0

ボタン コントロールに、次のスニペットを追加するだけです。

OnClientClick="if(Page_ClientValidate(ValidateSomething)){this.disabled=true;}"

このリンクを確認してくださいasp.net クリック後にボタンを無効にし、CausesValidation と OnClick-Method を維持します

于 2013-07-23T05:15:16.420 に答える
0

あなたの目的のためにjqueryを使うべきです:

<script>
    $(document).ready(function () {
        var Error = false;
        $("#RadioButton1").click(function () {
            $("#TextBox2").attr("disabled", "disabled");
            $("#TextBox1").removeAttr("disabled");
        });
        $("#RadioButton2").click(function () {
            $("#TextBox1").attr("disabled", "disabled");
            $("#TextBox2").removeAttr("disabled");
        });
        $("#Button1").click(function () {
            var TextBox1value = $("#TextBox1").val();
            var TextBox2value = $("#TextBox2").val();
            var TextBox1Disable = $("#TextBox1").attr("disabled");
            var TextBox2Disable = $("#TextBox2").attr("disabled");

            if ((TextBox1value == "") && TextBox1Disable != "disabled") {
                $("#Label1").text("text can not be empty");
                Error = true;
            }
            if ((TextBox2value == "") && TextBox2Disable != "disabled") {
                $("#Label2").text("text can not be empty");
                Error = true;
            }

        });


        $("#form1").submit(function (e) {
            if (Error) {
                alert("there are Some validation error in your page...!");
                e.preventDefault();
            }

        });

    });
</script>

本体要素は次のとおりです。

<form id="form1" runat="server">
    <div>
    </div>
    <asp:RadioButton ID="RadioButton1" runat="server" GroupName="g1" /><asp:TextBox ID="TextBox1" runat="server" Enabled="False"></asp:TextBox><asp:Label ID="Label1" runat="server" ForeColor="Red"></asp:Label>
    <br />
    <asp:RadioButton ID="RadioButton2" runat="server" GroupName="g1" /><asp:TextBox ID="TextBox2" runat="server" Enabled="False"></asp:TextBox><asp:Label ID="Label2" runat="server" ForeColor="Red"></asp:Label>
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" />
</form>
于 2013-07-23T04:27:36.423 に答える