1

今朝、選択したjQueryスクリプトに関する質問を投稿しました。これは、選択したjqueryの複数選択ボックスからクラシックaspを使用して値を取得する方法でした。誰かがデモコードを要求したので、ビルドするとすべてが機能するようです。突然元気になり、年をとっていることを知っていると思いましたが、コードを実装しようとした後、同じ問題が発生しましたが、実行している問題を見つけた可能性があります。以下に、関連するコードを示します。

これには、選択したjquery(http://harvesthq.github.com/chosen/)の2つのフォームが含まれます。上のフォームはプレーンフォーム、2番目のフォームはアップロード機能付きのフォームです。両方のページの以下のコードを含めました。 :

'example.jquery.html'のコード

<!doctype html> 
<html lang="en"> 
<head>
  <link rel="stylesheet" href="chosen/chosen.css" />
</head>
<body>
<h3>Chosen without enctype="multipart/form-data"</h3>
<form action="CollectChosenData.asp?type=plain" method="post" name="ExampleChosen">
<div id="container">
    Multiple Select<br><br>
    <select data-placeholder="Your Favorite Types of Bear" style="width:350px;" multiple class="chzn-select" name="ChosenData" tabindex="8">
        <option value=""></option>
        <option value="1">American Black Bear</option>
        <option value="2">Asiatic Black Bear</option>
        <option value="3">Brown Bear</option>
        <option value="4">Giant Panda</option>
        <option value="5" selected>Sloth Bear</option>
        <option value="6">Sun Bear</option>
        <option value="7" selected>Polar Bear</option>
        <option value="8">Spectacled Bear</option>
    </select>
    <br>
    <br>

    text field:
    <input type="text" name="othertext" value="text value">
    <br>
    <br>
    <input type="submit" name="ExampleChosenSubmit" value="Post form">
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
  <script src="chosen/chosen.jquery.js" type="text/javascript"></script>
  <script type="text/javascript"> $(".chzn-select").chosen();</script>
  </form>
<br>
<hr>
<br>

<h3>Chosen with enctype="multipart/form-data"</h3>
<form action="CollectChosenData.asp?type=upload" method="post" name="ExampleChosenUpload" enctype="multipart/form-data">
<div id="container">
    Multiple Select<br><br>
    <select data-placeholder="Your Favorite Types of Bear" style="width:350px;" multiple class="chzn-select" name="ChosenData" tabindex="8">
        <option value=""></option>
        <option value="1">American Black Bear</option>
        <option value="2">Asiatic Black Bear</option>
        <option value="3">Brown Bear</option>
        <option value="4">Giant Panda</option>
        <option value="5" selected>Sloth Bear</option>
        <option value="6">Sun Bear</option>
        <option value="7" selected>Polar Bear</option>
        <option value="8">Spectacled Bear</option>
    </select>

    <br>
    <br>

    other field:
    <input type="file" name="mytestfile" value="">
    <br>
    <br>

    text field:
    <input type="text" name="othertext" value="text value">
    <br>
    <br>
    <input type="submit" name="ExampleChosenSubmit" value="Post form">
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
  <script src="chosen/chosen.jquery.js" type="text/javascript"></script>
  <script type="text/javascript"> $(".chzn-select").chosen();</script>
  </form>
</body>
</html>

================================================== ================================================== ================================================== ==============

'CollectChosenData.asp'のコード

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>
<% 
If Request.Querystring("type") = "plain" Then
    Response.write "Value collected from chosen select box: '"& Request.Form("ChosenData") &"'<br/>"
    Response.write "Value collected from text field: '"& Request.Form("othertext") &"'<br/>"
ELseIf Request.Querystring("type") = "upload" Then
    Set objUpload = Server.CreateObject("Persits.Upload")
        objUpload.OverwriteFiles = False
        objUpload.SetMaxSize 1048576    ' Limit files to 1MB
        objUpload.SaveVirtual "/upload"
        Response.write "Value collected from chosen select box: '"& objUpload.Form("ChosenData") &"'<br/>"
        For Each File in objUpload.Files
            Response.write File.FileName &"<br/>"
        Next
        Response.write "Value collected from text field: '"& objUpload.Form("othertext") &"'<br/>"
    Set objUpload = nothing
End if

 %>
<br>
<br>
Return and <a href="example.jquery.html">try again</a>
</body>
</html>

では、なぜ最初の形式(プレーンバージョン)で「ChosenData」の正しい値が返され、2番目の形式では返されなかったのでしょうか。

あなたの助けにとても感謝し、みんなに返事をします、彼は頭を掻きながら言います.....

4

1 に答える 1

2

あなたの問題は、アップロード コンポーネントが選択された複数の値の 1 つだけを表示していることにあるようです。

「Upload.Form は複数選択コントロールの最初に選択された項目のみを返す」を参照してください。

ChosenData回避策が示すように、名前と表示の各フォーム要素をループする必要があります。

于 2012-09-27T06:14:04.867 に答える