2011-06-24 26 views
0

次のスクリプトは、フォームフィールドに変数の値を設定します。しかし、目的のフォーム/フィールドにのみ書き込むようにスクリプトを制限するのに問題があります。コメントフォームにも同じ値が入力されています。入力フィールドを選択して値を追加する

jQuery(document).ready(function($) { 
    <?php $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?> 

    var pageAddress="<?php echo $url?>"; 

    $('#testform a').click(function(){ 
     $(":input[name$='feedbackform']").val(pageAddress); 
    }); 
}); 

私は、このようにターゲットフォームのIDを追加することにより、セレクタを洗練試してみました:何

$(" #formcontainter :input[name$='feedbackform']").val(pageAddress); 

それがcommmentフォーム内のフィールドへの書き込みスクリプトを停止しません。その値を挿入するスクリプトのフォームとフィールドを選択する正しい方法です。

ありがとうございました。

+1

を意味すると思います。 –

+1

これは私にとってはうまくいくようです:http://jsfiddle.net/YDUwV/ –

+0

同じ名前(feedbackform)のフィールドが複数あるのでなければ、それはうまくいくはずです。 –

答えて

0

私はそれがこの質問への答えを与えることは不可能です、あなたのHTMLマークアップを見ず

$(" #formcontainter input[name$='feedbackform']").val(pageAddress); 

または入力が直接の子であるならば、

$(" #formcontainter > input[name$='feedbackform']").val(pageAddress); 
+0

ご意見ありがとうございます。タグを使用しても問題は解決しません。その形式をjqueryセレクタで使用するのは間違っていますか? – dorich

+0

私はあなたが何をしているのかは分かりませんが、ここで私は何をしますか? firefoxでfirebugを開き、上記のコマンドを実行します。あなたに何が結果をもたらすかを見てください。コメントの1つが言ったように、jsがなければ、私たちは本当に助けることができません。 –

0
<?php $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?> 
jQuery(document).ready(function($) { 

    $('#a').click(function(){ 
     $(":input[name$='feedbackform']").val(pageAddress); 
    }); 

}); 

<input name="a" id="a" type="hidden" value="<?php echo $url?>" /> 
+0

フィードバックいただきありがとうございます。私は事をシンプルにしようとしていましたが、ここで問題となるのは、フォームがhtmlスニペットとして読み込まれ、ダイアログに表示されることです。だから私は 'ホスト'ページのURLをキャプチャし、フォームがロードされた後にフォームに渡す必要があります。私はこれをPHPの唯一の解決策でやって失敗しました。私のサンプルの「クリック」機能は、フォームがロードされた後にpageAddressがロードされていることを確認するためのものです。 – dorich

関連する問題