我将javascript放在$(document).ready中时出现问题

wik*_*iki 1 javascript jquery

嗨我在没有$(document).ready的情况下放置以下代码正常工作

 <asp:TextBox ID="TextBox_FirstName" runat="server"></asp:TextBox>
 <asp:TextBox ID="TextBox_LastName" runat="server"></asp:TextBox>
 <asp:Button ID="txtSubmit" Text="Validate" runat="server" />
 <asp:CustomValidator ID="AtLeastOneTextBoxValidator" runat="server" 
        ClientValidationFunction="Validate_Textbox" ValidateEmptyText="true">
 </asp:CustomValidator>


function Validate_Textbox(sender, args) {
        var firstName = document.getElementById("<%= TextBox_FirstName.ClientID %>");
        var lastName= document.getElementById("<%= TextBox_LastName.ClientID%>");
        if ((firstName == "") && (lastName == "")){
              window.alert("Error");
        }
} 
Run Code Online (Sandbox Code Playgroud)

当我将此代码放在$(document).ready中时,它会给出' Microsoft JScript运行时错误:对象预期'错误.

$(document).ready( function(){
    function Validate_Textbox(sender, args) {
        var firstName = document.getElementById("<%= TextBox_FirstName.ClientID %>");
        var lastName = document.getElementById("<%= TextBox_LastName.ClientID%>");
        if ((firstName == "") && (lastName == "")){
              window.alert("Error");
        }
    }       
});
Run Code Online (Sandbox Code Playgroud)

Vot*_*ple 7

您现在正在Validate_Textbox另一个(匿名)函数中声明该函数.像所有变量一样,它现在只能在该函数中使用.您将无法在应用程序的任何其他位置使用它.

$(document).ready()回调中声明函数没有功能优势.更好的问题是:在哪里被Validate_Textbox 称为