1

選択したオプション テキストを jquery を使用して URL に送信しようとしていますが、フォームを<form></form>タグでラップするたびに動作が停止し、テキストの代わりに値が送信されます。フォームタグを削除すると、期待どおりに動作します。

フォームタグを除外せずに動作させる方法があるかどうか知りたい

ありがとう!

<form>
    <select name="brand" id="brand" class="update">

        <option value="">Seleccionar</option>

        <?php if (!empty($list)) { ?>

            <?php foreach($list as $row) { ?>

                <option value="<?php echo $row['id']; ?>">

                    <?php echo $row['name']; ?>

                </option>

            <?php } ?>

        <?php } ?>

    </select>

    <select name="model" id="model" class="update" disabled="disabled">
        <option value="">----</option>
    </select>

    <select name="size" id="size" class="update" disabled="disabled">
        <option value="">----</option>
    </select>

    <input type="submit" value="Search" id="submit">

</form>

    </div>
    </div>
    <script src="js/jquery-1.6.4.min.js" type="text/javascript"></script>

    <script src="js/core.js" type="text/javascript"></script>

    <script type="text/javascript">
      $(document).ready(function(){
       $('#submit').click(function(){
        var brand = $('#brand option:selected').text();
        var model = $('#model option:selected').text();
        var size = $('#size option:selected').text();
        location.href ='index.php?s='+brand+'+'+model+'+'+size+'';
       });
      });
    </script>
4

2 に答える 2

2

フォームが送信されているため、それを防ぐ必要があります。

$(document).ready(function(){
   $('#submit').click(function(e){
    e.preventDefault();
    var brand = $('#brand option:selected').text();
    var model = $('#model option:selected').text();
    var size = $('#size option:selected').text();
    location.href ='index.php?s='+brand+'+'+model+'+'+size+'';
   });
});
于 2013-02-03T21:37:46.953 に答える
0

falseフォームの送信が行われないようにするには、イベント ハンドラーから戻る必要があります。

追加するだけ

return false;

最後に。(また、adeneoの回答が行うように指示することもできます。どちらも機能するはずです。)

于 2013-02-03T21:37:19.250 に答える