1

[フェイスボックス]ポップアップには、送信ボタンのあるフォームが含まれています。プロジェクトにjQuery.validateを追加する前に機能していた無関係のFaceboxポップアップを開くための2番目のボタンもあります。送信する前に、電子メールとパスワードのフィールドを検証する必要があります。

これらのポップアップは外部の.htmlファイルを介してロードされることを追加する必要があります。これにより、AJAXリクエストを介してそれらがロードされました。

index.htmlでは、ポップアップが設定されています($ kはjQuery.noConflict()と同じです)。

$k('a[rel*=example_2]').facebox_1({
    loading_image : '/images/loading.gif',
    close_image   : '/images/closelabel.gif'
});

そして、リンクをクリックして上記のフェイスボックスを開きます。

<a href="login.html" title="Log In" rel="example_2" id='login'>Log In </a>

そして、以下のすべてがlogin.htmlにあります

検証:

$(function () {
    $('form[name="login"]').validate({
        rules: {
            email: { required: true, email: true },
            password: "required"
        },
        messages: {
            email: "",
            password: ""
        }
    });
});

そしてフォーム:

<form name="login" method="post" action="login.aspx">

そして、機能しないボタン

<a href="#" title="Register" onclick="showRegister()" ><img src="images/register.jpg" /></a>

Nickは、この投稿でフォームを投稿するのを手伝ってくれましたが、他のボタンが壊れているようです。Firebugが外部から要求された(XHRを介して)ページにブレークポイントを設定できるかどうかわからないため、スクリプトのデバッグに問題があります。

showRegister()を呼び出したばかりの壊れたボタンにクリックハンドラーを追加しようとしましたが、それも機能しませんでした。実際には、index.htmlからのリンクであるshowRegister()単純な呼び出し。$('#linkFromIndexDotHtml').click();それが問題かもしれないと思いましたが、以前はうまくいきました。

4

1 に答える 1

0

私は同じ問題を抱えていて、http://old.nabble.com/Validation-and-Facebox-td22187264s27240.htmlからの情報でそれを解決しました

$.extend($.facebox, {
    settings: {
    dom_data: null,
    dom: null,

...*フェイスボックスのメイン宣言に変数domとdom_dataを追加します

if (href.match(/#/)) {
      var url    = window.location.href.split('#')[0]
      var target = href.replace(url,'')
      $.facebox.settings.dom = target;
      $.facebox.settings.dom_data = $(target).children();
      $.facebox.reveal($(target).children().show(), klass)

...*これはfillFaceboxFromHrefにあります

ついに、

$(document).bind('close.facebox', function() {
  if($.facebox.settings.dom){
  $($.facebox.settings.dom).append($.facebox.settings.dom_data);

  $.facebox.settings.dom = null;
  $.facebox.settings.dom_data = null;
  }

...*これはファイルの最後にあります

于 2011-01-31T21:38:18.500 に答える