0

私はjqueryのthickboxプラグイン(バージョン3)を使用しており、その中に$.postを使用して送信されるフォームを配置したいと考えています. しかし、フォーム要素は本来の動作をしていません。たとえば、選択ボックスがあります

<select name="priority" id="priority">
    <?php  for($i = 5; $i > 0; $i--){    ?>                                         
           <!-- <input type="radio" class="star" name="priority" value="<?php echo $i ?>"> -->
           <option value="<?php echo $i; ?>"><?php echo $i; if($i == 5) echo ' (lowest)'; if($i == 1)echo ' (highest)'; ?></option>             
    <?php } ?>
    </select> 

送信機能を呼び出すボタンをクリックすると、

function add(){   
   var pr = document.getElementById("priority").value;
   console.log(pr);

}

最初の値のみを警告します。5 選択したオプションに関係なく。

助けてください。これは一般的に直面する問題ですか?

4

3 に答える 3

1

特にthickboxについては知りませんが、フォームに関する問題は多くのLightboxのようなツールに共通しています。その理由は、ツールが 1. フォーム要素をフォーム コンテキストから取り出し、2. 通常はそれらを DOM レベルのシックボックス/ライトボックス/その他にコピーするためです。ボックスが閉じられると、変更された設定が残っている状態でフォームにうまく戻るのではなく、要素が破棄またはリセットされます。

通常、この動作を変更することは可能ですが、*box スクリプト自体を変更して、DOM 要素を安全にやり取りできるようにする必要があります。

于 2009-12-18T15:26:23.010 に答える
1

jQuery の場合:

var pr = $("#priority option:selected").val();

純粋な JavaScript を使用したい場合は、次のようにする必要があります。

var i = document.getElementById("priority").selectedIndex;
var options = document.getElementById("priority").options;

var value = options[i].value;
于 2009-12-18T15:09:57.677 に答える
1

jQueryを使用しているので、使用する必要があります

var pr = $("#priority option:selected").val();

また

var pr = $("#priority").val();

それ以外の

var pr = document.getElementById("priority").value;

これで解決するはずです

詳細については、 http://docs.jquery.com/Attributes/valを参照してください。

于 2009-12-18T15:01:52.373 に答える