2011-11-08 12 views
0

ページに複数の類似したフォームがあり、jQueryフォームプラグインを使用しています。フォームのいずれかを送信した後、私は、特定のフォームの上にあるdivを更新したいと思っていましたが、そこからデータがphp/aspページからのレスポンスによって提出されました。
しかし、特定のdivへの応答を受け取るためにjQueryスクリプトでフォームを区別する方法はわかりません。ここでjQueryフォームスクリプトで複数の類似したフォームとdivを区別する方法

は、フォームやdivを区別するための利用可能性のない元のスクリプトです:

<form id='htmlForm' action='process.asp' method='post'> 
<input TYPE='hidden' NAME='ID' VALUE='1'> 
<input type='submit' value='Go'></form> 

<div id='htmlExampleTarget'></div> 


<form id='htmlForm' action='process.asp' method='post'> 
<input TYPE='hidden' NAME='ID' VALUE='2'> 
<input type='submit' value='Go'></form> 

<div id='htmlExampleTarget'></div> 

など

フォームやdivタグを使用して作成されています。ここでは

<script type="text/javascript" src="jquery.form.js"></script> 
    <script type="text/javascript"> 
$(document).ready(function() { 
    $('#htmlForm').ajaxForm({ 
     target: '#htmlExampleTarget', 
     success: function() { 
      $('#htmlExampleTarget').fadeIn('slow'); 
     } 
    }); 
});  

は、フォームやdiv要素がありますループでは、IDの数字を数値的に変更するのに問題はありません...私はそれらを区別するためのスクリプトが必要です。これで、最初のdivだけをサーバーからの応答で更新できます。あなたはすべてのオブジェクトは、固有のIDを持つ必要があります知っている

答えて

1

は、それはあなたが複数の要素に同じIDを使用するべきではありませんとにかく方法について

... 
success: function() { 
      $(this).prev('div').html('banana dance'); 
     } 
0

、W3準拠した有効なHTMLコードではありません。 要素の型が同じ場合は、クラスを使用してidを使用して、必要な特定の要素を取得します。

ie。

<form id='htmlForm_1' class='htmlForm' action='process.asp' method='post'> 
0

私は次の、

<div class="wrap_form"> 
    <div class="above"></div> 
    <form> 
    </form> 
</div> 

<div class="wrap_form"> 
    <div class="above"></div> 
    <form> 
    </form> 
</div> 

$('form').submit(function(){ 
    var form $(this); 
    $.ajax({ 
    ... options go here ..., 
    success:function (r) { 
      $(form).parents('.wrap_form').find('.above').html('blablabla'); 
     } 
    }) 
}); 

///を行うだろうが、あなたのアプローチ

使用$('form').prev('div');

+0

こんにちは、おかげでターゲットを得るために提出します。私は、すべてのフォームとdivに異なるID(htmlForm_1、htmlForm_2など、htmlExampleTarget_1、htmlExampleTarget_2など)を付けます。 JavaScriptコードがどのように表示されるのか、どういう意味ですか?ありがとう。 – idig

+0

よく説明するのは難しいですが、@ max4everの答えはあなたの現在の状況に役立ちます – Val

0

を見てそれは形式に同じIDを持つように完全に間違っているのです。

あなたが入力を使用することができます:あなたはこの権利とあなたのコードをしたいならば、あなたはコメントで尋ねた何のため

$(document).ready(function() { 
    $('#htmlForm_1').ajaxForm({ 
     target: '#htmlExampleTarget_1', 
     success: function() { 
      $('#htmlExampleTarget_1').fadeIn('slow'); 
     } 
    }); 
}); 

など

である必要があり、各フォームごとに異なるIDを使用上のフィールド名=「ID」は、このようにアドバイスを

var targetNum = 0; //outside the functions 


      targetNum = jQuery(this).children('input[name="ID"]').val(); 
$('#htmlExampleTarget'+targetNum).fadeIn('slow'); 
+0

OK、しかし、htmlForm_1、htmlForm_2などがあるので、数値の代わりに変数を置く必要があります。アイディア? – idig

+0

これは送信時に行う必要があります。入力[name = "ID"]の値を取得して使用します。私は答えを編集して、私が意味することを見ている – John

+0

私は一緒にコードを入れて、それは動作しません。何か案が? var targetNum = 0; $(文書)。レディ(関数(){ \t \t \t targetNum = jQueryの(この).children( '入力[NAME = "MapaID"]')のval(); $( '#htmlForm' + targetNum).ajaxForm({ ターゲット: '#htmlExampleTarget' + targetNum、 成功:関数(){ \t \t \t \t $( '#htmlExampleTarget' + targetNum).fadeIn( '遅い'); }}); })。 – idig

関連する問題