0

マスター ページ:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Master.master.cs" Inherits="Master" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">    
    <asp:ContentPlaceHolder id="head" runat="server">
    <%--Place for title--%>
    </asp:ContentPlaceHolder>
    <link rel="stylesheet" href="css/layout.css" type="text/css" media="all"/>
    <link rel="stylesheet" href="css/style.css" type="text/css" media="all"/>        
    <script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="js/script.js"></script>
       <link href="css/loginPopup.css" rel="stylesheet" type="text/css" />            
</head>      
<body>
<form id="form1" runat="server">    
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>            
      <div class="body1">      
            <div class="main">
……
……

コンテンツページ:

<%@ Page Title="" Language="C#" MasterPageFile="~/Master.master" AutoEventWireup="true" CodeFile="register.aspx.cs" Inherits="register" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<title>Register with Us</title>
  <link href="css/template.css" rel="stylesheet" type="text/css" />
  <link href="css/validationEngine.jquery.css" rel="stylesheet" type="text/css" />
  <script src="js/jquery.validationEngine.js" type="text/javascript"></script>
  <script src="js/jquery.validationEngine-en.js" type="text/javascript"></script>  
    <script type="text/javascript">
        jQuery(document).ready(function () {
            jQuery("#form1").validationEngine();
        });
</script>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="main_body" Runat="Server">
        <div class="body2">
            <div class="main">
…….
…….

問題

拝啓、上記のコンテンツ ページでわかるように、form id( ) を使用する jQuery 関数がありform1ます。問題は、フォーム/フォーム ID がマスター ページにあることです。そのため、この jQuery 関数は機能していません。解決策を教えてください。

4

2 に答える 2

1

jQuery セレクター

jQueryセレクターでは、フォームの名前が変更されている可能性があることを考慮する必要があります。特にrunat="server".

フォームにワイルドカード検索を使用するセレクターを使用すると、次のように機能するはずです。

$("form[id$='form1']")

または、より具体的には、使用シナリオについて:

jQuery("form[id$='form1']").validationEngine(); 
// $ is a shortcut for jQuery so either can be used

その他のオプションについては、 jQuery セレクターを確認してください。

クライアント側とサーバー側

私は通常、クライアント側の JavaScript を選択し、絶対に必要な場合にのみ 2 つを組み合わせます。これらのケースでは、IIFE パターンを使用することを選択し、いくつかのプロパティにサーバー側の値を挿入します (つまり<%=form1.ClientID %>、VahidND によって提案された構文を使用します)。aspx ファイルに最小限の JavaScript を保持するようにしています。これにより、Web アプリケーションの編成が容易になり、Firefox および Chrome でのロードのデバッグが容易になります。一般的に言えば、セレクターなどで終わる$=jQueryの構文を使用するだけでうまくいくことができます。あなたのページが実際の複雑さに近づくにつれて、それを大量に使用することがわかります。

ASP.NET Web フォーム

ASP.NET Web フォームの主な欠点の 1 つは、ページごとに 1 つのフォームに制限されることです。独自のフォームをページに追加している場合、これが問題を引き起こしている可能性もあります。

于 2013-09-18T11:56:49.543 に答える