2017-08-22 11 views
0

私はcoldfusionページで以下を持っています。アイテムIDを隠しフィールドとして渡しているので、後で使用することができます。coldfusionページの非表示フィールドを使用するjquery

<cfloop query="the_item_list"> 
    <a href="index.cfm?item_id=#item_id#">#the_item_list.item_title#</a> 
    <input type="hidden" id="pdf_filename" value="#replace(the_item_list.item_title,' ','_','ALL')#"> 
</cfloop> 

以下は、item_titleに基づいて作成されたPDFファイルの名前を変更しようとしているjqueryです。この場合、2つのアイテムタイトルがあります。ファイル名はreport_title_1_title_2.pdfのようにしてください。以下では、ファイル名の最初のタイトルのみを取得しています。タイトルを両方とも取得するにはどうすればいいですか?

$('input[type=hidden]').each(function(){ 
     var hiddenValue = $(this).val(); 
     //alert(hiddenValue); 

     if(hiddenValue != undefined){ 
     filename = 'report_'+hiddenValue+'.pdf'; 
     }else{ 
      filename = 'report.pdf'; 
     } 
    }); 
    doc.save(filename); 
+0

'id'は一意であるので、それにファイルIDを追加する必要があります:' idは= "pdf_filename_#1のitem_id#" '。また、クラスセレクタは隠れた入力を調べるよりも高速です。将来この機能に関連しない隠された入力に終わるかもしれないので、 'class =" pdfFilename "'というpdfファイル名に関連する各要素に任意のクラス名を追加するほうがよいでしょう。コードは '$( '.pdfFilename')。each()'を起動します。 –

+0

ここで意図を判断するのは難しい種類です。ユーザーがアンカータグを選択した場合、入力の値は次のページに渡されません。 –

答えて

0

doc.save(filename)は.each()関数の外にあるため、1つのファイル名で1回だけ実行されます。あなたのコードは、両方のファイル名を取得する必要があります、このフィドルを参照してください。 DOM要素のhttps://jsfiddle.net/3pcv55qm/2/

$(document).ready(function(){ 
    var hiddenValue = ""; 
    $('input[type=hidden]').each(function(){ 
     var hiddenValue += $(this).val() + "_"; 

    }); 
//console.log(hiddenValue); 
$("body").append("<h3>" + hiddenValue + "</h3>"); 
}); 
+0

私は、hiddenValueで返されている2つのファイル名を連結し、doc.save(filename)を実行する方法を欲します。 2つの異なるファイル名で保存しないでください。 – user747291

+0

私の編集した応答をチェックしてください。ループ内に値を追加する必要があります。 –

関連する問題