0

ユーザーがファイルを再アップロードするボタンをクリックしたときに選択された値を取得するこのコードがあります。window.name を使用してみましたが、データはまだ失われています。間違った角度でこれを行っている可能性がありますが、助けていただければ幸いです。ファイルが再度アップロードされたときに myVal を空にしない方法はありますか? アップロードと選択値は異なるフォームに属しています。配列を使用することはできません。これは、選択値があるフォームを送信する必要があることを意味します。

ありがとうございました

function testcsv()
    {
        var myVal = $('#csv_map').find('.sqlopt').map(function() {
                                       return $(this).val();

                                       }).get().join(',');
        var select_val = myVal.split(',');

        alert(select_val);
        window.name = myVal;


        $('#csvtest').click(
        function()
        {
        $('#csv_form').submit();
        alert(window.name);
        }
        );

        // $('#sqlbox_1').val(test[0]);


    }
4

1 に答える 1

0

アップロード フォーム内に隠しフィールドを配置し、フォームが送信される直前 (つまり、ユーザーがファイルをアップロードするとき) に更新します。プロトタイプ:

<!-- Upload form -->
<form id="csv_form">
<!-- form definition omitted (fields, labels, etc) ... -->

<!-- and this is our hidden field -->
<input type="hidden" name="select_val" />
</form>

<!-- Form with SELECTs -->
<form id="csv_map">
<select class="sqlopt"> ... </select>
<select  class="sqlopt"> ... </select>
<!-- rest of the form definition omitted ... -->
</form>

<!-- Put this JS somewhere -->
<script>
$(document).ready(function() {
  $('#csv_form').submit(function() {
    var myVal = $('#csv_map').find('.sqlopt').map(function() {
      return $(this).val();
    }).get().join(',');

    // Update value of hidden field 
    $(this).find('input[name="select_val"]').val(myVal); // will contain comma-separated string of values
  });
});
</script>
于 2012-05-03T03:52:47.763 に答える