No it will work. You just need to write the code this way for server side controls.
var pass1 = document.getElementById("<%=txtPass1.ClientID %>").value;
var pass2 = document.getElementById("<%=txtPass2.ClientID %>").value;
ContentPage
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
<script type="text/javascript">
function validatePassword() {
var pass1 = document.getElementById("<%=txtPass1.ClientID %>").value;
var pass2 = document.getElementById("<%=txtPass2.ClientID %>").value;
if (pass1 != pass2) {
document.getElementById("<%=lblMessage.ClientID %>").innerHTML = "Passwords Don't Match";
}
else {
document.getElementById("<%=lblMessage.ClientID %>").innerHTML = "";
//empty string means no validation error
}
return false;
}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:TextBox ID="txtPass1" runat="server" TextMode="Password" />
<asp:TextBox ID="txtPass2" runat="server" TextMode="Password" />
<br />
<asp:Label ID="lblMessage" runat="server" />
<asp:Button Text="Validate" runat="server" OnClientClick="return validatePassword();" />
</asp:Content>