>

단순히 ASP 텍스트 상자에 대한 양식 유효성 검사가 작동하지 않는 이유를 묻고 싶습니다. 사용자가 텍스트 상자에 텍스트를 입력하지 않으면 단락 태그에 설명이 표시되어 텍스트를 입력하십시오. 하지만 작동하지 않습니다.이 문제를 해결하도록 도와주세요.

자바 스크립트 코드는 다음과 같습니다.

function checkForm() {
var errors = [];
if ($("#itemBrand").value == "") {
    errors[0] = "Please input a text!";
}
if ($("#itemModel").value == "") {
    errors[1] = "Please input a text!";
}
if (errors.length > 0) {
    if (errors[0] != null) {
        document.getElementById("itemBrandValidate").innerHTML = errors[0];
    }
    if (errors[1] != null) {
        document.getElementById("itemModelValidate").innerHTML = errors[1];
    }
 return false;
}
return true;
}

여기에 aspx가 있습니다 :

<asp:TextBox ID="itemBrand" runat="server" BackColor="#FFFF66" 
 BorderColor="Black" BorderWidth="1px" Height="20px" Width="300px">
 </asp:TextBox><br />
                    <p  id="itemBrandValidate"></p>
 <asp:TextBox ID="itemModel" runat="server" BackColor="#FFFF66" 
 BorderColor="Black" BorderWidth="1px" Height="20px" Width="300px">
 </asp:TextBox><br />
                    <p  id="itemModelValidate"></p>
 <asp:Button ID="Button1" runat="server" CssClass="submitButton" Text="Save 
  Item" OnClick="Button1_Click" OnClientClick="return checkForm()"/>


  • 답변 # 1

    텍스트 상자에 ClientIdMode = "정적"을 추가하십시오. 그렇지 않으면 .NET 플랫폼이 서버 ID 특성과 동일하지 않은 Id를 생성하고 Jquery 선택기가 예상대로 작동하지 않습니다.

    예 :

    <asp:TextBox ID="itemBrand" ClientIDMode="static" runat="server" BackColor="#FFFF66" 
     BorderColor="Black" BorderWidth="1px" Height="20px" Width="300px">
     </asp:TextBox>
    
    

  • 답변 # 2

    asp.net 서버 컨트롤의 클라이언트 쪽 ID가 서버 쪽 ID와 다릅니다.

    ClientIDMode = "Static" 를 사용할 수 있습니다  (.NET 4.0에서 도입) 또는 ClientID 를 사용할 수 있습니다  아래에 표시된 것처럼 유효성 검사 기능을 약간 다시 작성하려고했습니다.

    function checkForm() {
    var success = true;
    var itemBrandID = "<%= itemBrand.ClientID %>" ;  
    if ($("#" + itemBrandID).value == "") {
        success = false;
        document.getElementById("<%= itemBrandValidate.ClientID %>").innerHTML = "Please input a text!";
    }
    var itemModelID = "<%= itemModel.ClientID %>" ;  
    if ($("#" + itemModelID).value == "") {
        success = false;
        document.getElementById("<%= itemModelValidate.ClientID %>").innerHTML = "Please input a text!";
    }
    
    return success;
    }
    
    

    또한 jQuery를 사용하여 ASP.NET ClientID를 찾는 일반적인 방법에 대해 Rick Strahl의이 훌륭한 게시물을 읽어보십시오.

    이것이 도움이되기를 바랍니다!

관련 자료

  • 이전 for loop - 문자열 슬라이스 범위가 일치하지 않습니다
  • 다음 reactjs - 입력 변경시 onChange가 업데이트되지 않습니다