-3

次のコードは、検証ルールを適用するという点でうまく機能します。

function validate() {

    if (document.getElementById("<%=txtName.ClientID%>").value == "") {
        alert("Please enter name");
        document.getElementById("<%=txtName.ClientID%>").focus();
        return false;
    }

    if (document.getElementById("<%=txtCity.ClientID %>").value == "") {
        alert("Please enter city");
        document.getElementById("<%=txtCity.ClientID %>").focus();
        return false;
    }
    if (document.getElementById("<%=txtState.ClientID%>").value == "") {
        alert("Please enter state");
        document.getElementById("<%=txtState.ClientID%>").focus();
        return false;
    }
    if (document.getElementById("<%=txtZip.ClientID%>").value == "") {
        alert("Please enter zip");
        document.getElementById("<%=txtZip.ClientID%>").focus();
        return false;
    }
    if (checkradio() == false) {
        alert("Please enter contacts");
        document.getElementById("<%=txtContacts.ClientID%>").focus();
        return false;
    }
     return true;
}

私の問題は、フォームがセクション1とセクション2の2つのセクションに分かれていることです。

2番目の1には必須のフォームフィールドが含まれ、セクション2にはオプションフィールドが含まれます。

ルールは、両方のセクションから同時に選択することはできないということです。セクション1またはセクション2から選択できます。

セクション1には、必須の上記のフォームフィールドがあり、セクション2には、オプションの同じフォーム上のフォームフィールドがあります。

セクション1から選択すると、すべて問題ありません。

セクション2から選択した場合、それらは同じフォーム上にあるため、検証ルールが開始されます。

セクション2のフォームフィールドが空白でない場合、検証ルールが有効になっていないと言うようにフォームを条件付ける方法はありますか?

さらに良いことに、従来のaspでは、1つのファイルに複数のフォームを含めることができます。

それはasp.netで可能ですか?

これにより、オプションのフィールドから選択する際の検証が不要になると思います。

長いスレッドでごめんなさい。

4

1 に答える 1

0
  1. マークアップに複数のフォームを追加するだけで、ASP.NET で複数のフォームを持つことができます。
  2. 検証関数では、最初に form2 のいずれかのコントロールが設定されているかどうかを確認してから、true を返します。それ以外の場合は、他のチェックに進みます。

    function validate() {
    
    if(... check if any controls of form 2 are set ...) return true;
    
    // Otherwise proceed with checks for form 1
    
    if (document.getElementById("<%=txtName.ClientID%>").value == "") {
        alert("Please enter name");
        document.getElementById("<%=txtName.ClientID%>").focus();
        return false;
    }
    
    ....
    
于 2012-04-28T21:02:59.960 に答える